From 843f06358cfa943c9da547c3af0a03e4aefd1888 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Sun, 24 Nov 2024 22:46:26 +0100 Subject: [PATCH] Translate c-api/init Closes #3242 --- c-api/init.po | 870 +++++++++++++++++++++--------------- dictionaries/c-api_init.txt | 7 +- 2 files changed, 511 insertions(+), 366 deletions(-) diff --git a/c-api/init.po b/c-api/init.po index 49129398b0..40679e0137 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2023-01-14 14:22-0500\n" -"Last-Translator: CatalinaArrey \n" -"Language: es\n" +"PO-Revision-Date: 2024-11-24 22:37+0100\n" +"Last-Translator: Cristián Maureira-Fredes \n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.4.2\n" #: ../Doc/c-api/init.rst:8 msgid "Initialization, Finalization, and Threads" @@ -67,9 +68,8 @@ msgid ":c:func:`PyImport_ExtendInittab`" msgstr ":c:func:`PyImport_ExtendInittab`" #: ../Doc/c-api/init.rst:28 -#, fuzzy msgid ":c:func:`!PyInitFrozenExtensions`" -msgstr ":c:func:`PyInitFrozenExtensions`" +msgstr ":c:func:`!PyInitFrozenExtensions`" #: ../Doc/c-api/init.rst:29 msgid ":c:func:`PyMem_SetAllocator`" @@ -160,19 +160,16 @@ msgid ":c:func:`PyMem_RawFree`" msgstr ":c:func:`PyMem_RawFree`" #: ../Doc/c-api/init.rst:58 -#, fuzzy msgid "Synchronization:" -msgstr "Notificaciones asincrónicas" +msgstr "Sincronización:" #: ../Doc/c-api/init.rst:60 -#, fuzzy msgid ":c:func:`PyMutex_Lock`" -msgstr ":c:func:`PyMem_RawMalloc`" +msgstr ":c:func:`PyMutex_Lock`" #: ../Doc/c-api/init.rst:61 -#, fuzzy msgid ":c:func:`PyMutex_Unlock`" -msgstr ":c:func:`PyMem_RawMalloc`" +msgstr ":c:func:`PyMutex_Unlock`" #: ../Doc/c-api/init.rst:65 msgid "" @@ -216,15 +213,14 @@ msgstr "" "`Py_BytesWarningFlag` en 2." #: ../Doc/c-api/init.rst:87 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.bytes_warning` en su lugar, " +"consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:91 msgid "" @@ -241,15 +237,14 @@ msgid "Set by the :option:`-b` option." msgstr "Establecido por la opción :option:`-b`." #: ../Doc/c-api/init.rst:101 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.parser_debug` en su lugar, " +"consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:105 msgid "" @@ -268,15 +263,14 @@ msgstr "" "`PYTHONDEBUG`." #: ../Doc/c-api/init.rst:115 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.write_bytecode` en su lugar, " +"consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:119 msgid "" @@ -295,15 +289,14 @@ msgstr "" "`PYTHONDONTWRITEBYTECODE`." #: ../Doc/c-api/init.rst:129 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.pathconfig_warnings` en su " +"lugar, consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:133 msgid "" @@ -320,16 +313,15 @@ msgstr "" "``frozenmain``." #: ../Doc/c-api/init.rst:142 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se deben " +"utilizar las configuraciones :c:member:`PyConfig.hash_seed` y :c:member:" +"`PyConfig.use_hash_seed` en su lugar, consulte :ref:`Python Initialization " +"Configuration `." #: ../Doc/c-api/init.rst:147 msgid "" @@ -348,39 +340,36 @@ msgstr "" "`PYTHONHASHSEED` para inicializar la semilla de *hash* secreta." #: ../Doc/c-api/init.rst:157 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.use_environment` en su lugar, " +"consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:161 -#, fuzzy msgid "" "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." +"Ignore todas las variables de entorno :envvar:`!PYTHON*`, por ejemplo, :" +"envvar:`PYTHONPATH` y :envvar:`PYTHONHOME`, que puedan estar configuradas." #: ../Doc/c-api/init.rst:164 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:170 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.inspect` en su lugar, " +"consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:174 msgid "" @@ -402,30 +391,28 @@ msgstr "" "`PYTHONINSPECT`." #: ../Doc/c-api/init.rst:185 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.interactive` en su lugar, " +"consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:189 msgid "Set by the :option:`-i` option." msgstr "Establecido por la opción :option:`-i`." #: ../Doc/c-api/init.rst:195 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.isolated` en su lugar, " +"consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:199 msgid "" @@ -441,15 +428,15 @@ msgid "Set by the :option:`-I` option." msgstr "Establecido por la opción :option:`-I`." #: ../Doc/c-api/init.rst:210 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyPreConfig.legacy_windows_fs_encoding` " +"en su lugar, consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:214 msgid "" @@ -480,24 +467,22 @@ msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilidad `: Windows." #: ../Doc/c-api/init.rst:229 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.legacy_windows_stdio` en su " +"lugar, consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:233 -#, fuzzy msgid "" "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`." +"Si el indicador no es cero, utilice :class:`io.FileIO` en lugar de :class:`!" +"io._WindowsConsoleIO` para las transmisiones estándar :mod:`sys`." #: ../Doc/c-api/init.rst:236 msgid "" @@ -513,15 +498,14 @@ msgid "See :pep:`528` for more details." msgstr "Ver :pep:`528` para más detalles." #: ../Doc/c-api/init.rst:247 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.site_import` en su lugar, " +"consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:251 msgid "" @@ -540,15 +524,11 @@ msgid "Set by the :option:`-S` option." msgstr "Establecido por la opción :option:`-S`." #: ../Doc/c-api/init.rst:262 -#, 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 `." +msgstr "ref:`Configuración de inicialización de Python `." #: ../Doc/c-api/init.rst:266 msgid "" @@ -567,15 +547,14 @@ msgstr "" "entorno :envvar:`PYTHONNOUSERSITE`." #: ../Doc/c-api/init.rst:276 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.optimization_level` en su " +"lugar, consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:280 msgid "" @@ -586,15 +565,14 @@ msgstr "" "`PYTHONOPTIMIZE`." #: ../Doc/c-api/init.rst:287 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.quiet` en su lugar, consulte :" +"ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:291 msgid "" @@ -608,15 +586,14 @@ msgid "Set by the :option:`-q` option." msgstr "Establecido por la opción :option:`-q`." #: ../Doc/c-api/init.rst:301 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.buffered_stdio` en su lugar, " +"consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:305 msgid "Force the stdout and stderr streams to be unbuffered." @@ -631,15 +608,14 @@ msgstr "" "`PYTHONUNBUFFERED`." #: ../Doc/c-api/init.rst:314 -#, 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 `." +"Esta API se mantiene por compatibilidad con versiones anteriores: se debe " +"utilizar la configuración :c:member:`PyConfig.verbose` en su lugar, " +"consulte :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:318 msgid "" @@ -678,7 +654,6 @@ msgstr "" "excepciones." #: ../Doc/c-api/init.rst:349 -#, fuzzy msgid "" "This initializes the table of loaded modules (``sys.modules``), and creates " "the fundamental modules :mod:`builtins`, :mod:`__main__` and :mod:`sys`. It " @@ -690,19 +665,20 @@ msgid "" msgstr "" "Esto inicializa la tabla de módulos cargados (``sys.modules``) y crea los " "módulos fundamentales :mod:`builtins`, :mod:`__main__` y :mod:`sys`. También " -"inicializa la ruta de búsqueda del módulo (``sys.path``). No establece ``sys." -"argv``; use :c:func:`PySys_SetArgvEx` para eso. Este es un *no-op* cuando se " -"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." +"inicializa la ruta de búsqueda de módulos (``sys.path``). No establece ``sys." +"argv``; utilice la nueva API :c:type:`PyConfig` de :ref:`Python " +"Initialization Configuration ` para ello. Esta es una operación " +"sin efecto cuando se llama por segunda vez (sin llamar primero a :c:func:" +"`Py_FinalizeEx`). No hay ningún valor de retorno; es un error fatal si falla " +"la inicialización." #: ../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 `." +"Utilice la función :c:func:`Py_InitializeFromConfig` para personalizar :ref:" +"`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:363 msgid "" @@ -739,9 +715,11 @@ msgid "" "Return true (non-zero) if the main Python interpreter is :term:`shutting " "down `. Return false (zero) otherwise." msgstr "" +"Devuelve verdadero (distinto de cero) si el intérprete principal de Python " +"es :term:`shutting down `. Devuelve falso (cero) en " +"caso contrario." #: ../Doc/c-api/init.rst:394 -#, fuzzy 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:" @@ -750,15 +728,13 @@ msgid "" "allocated by the Python interpreter. This is a no-op when called for a " "second time (without calling :c:func:`Py_Initialize` again first)." msgstr "" -"Deshace todas las inicializaciones realizadas por :c:func:`Py_Initialize` y " -"el uso posterior de las funciones de Python/C API, y destruye todos los sub-" -"intérpretes (ver :c:func:`Py_NewInterpreter` a continuación) que se crearon " -"y aún no se destruyeron desde el última llamada a :c:func:`Py_Initialize`. " -"Idealmente, esto libera toda la memoria asignada por el intérprete de " -"Python. Este es un *no-op* cuando se llama por segunda vez (sin llamar a :c:" -"func:`Py_Initialize` nuevamente primero). Normalmente el valor de retorno es " -"``0``. Si hubo errores durante la finalización (lavado de datos almacenados " -"en el búfer), se retorna ``-1``." +"Deshaga todas las inicializaciones realizadas por :c:func:`Py_Initialize` y " +"el uso posterior de las funciones de la API de Python/C, y destruya todos " +"los subintérpretes (consulte :c:func:`Py_NewInterpreter` a continuación) que " +"se crearon y aún no se destruyeron desde la última llamada a :c:func:" +"`Py_Initialize`. Idealmente, esto libera toda la memoria asignada por el " +"intérprete de Python. Esta es una operación sin efecto cuando se llama por " +"segunda vez (sin llamar a :c:func:`Py_Initialize` nuevamente primero)." #: ../Doc/c-api/init.rst:401 msgid "" @@ -767,12 +743,18 @@ msgid "" "thread and the main interpreter. This should never be called while :c:func:" "`Py_RunMain` is running." msgstr "" +"Dado que se trata del proceso inverso de :c:func:`Py_Initialize`, se debe " +"llamar en el mismo subproceso con el mismo intérprete activo, es decir, el " +"subproceso principal y el intérprete principal. Nunca se debe llamar " +"mientras se esté ejecutando :c:func:`Py_RunMain`." #: ../Doc/c-api/init.rst:406 msgid "" "Normally the return value is ``0``. If there were errors during finalization " "(flushing buffered data), ``-1`` is returned." msgstr "" +"Normalmente, el valor de retorno es ``0``. Si se produjeron errores durante " +"la finalización (limpieza de datos almacenados en búfer), se devuelve ``-1``." #: ../Doc/c-api/init.rst:410 msgid "" @@ -794,7 +776,6 @@ msgstr "" "aplicación." #: ../Doc/c-api/init.rst:418 -#, fuzzy msgid "" "**Bugs and caveats:** The destruction of modules and objects in modules is " "done in random order; this may cause destructors (:meth:`~object.__del__` " @@ -808,17 +789,17 @@ msgid "" "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 " -"(métodos :meth:`__del__`) fallen cuando dependen de otros objetos (incluso " -"funciones) o módulos. Los módulos de extensión cargados dinámicamente " -"cargados por Python no se descargan. Es posible que no se liberen pequeñas " -"cantidades de memoria asignadas por el intérprete de Python (si encuentra " -"una fuga, informe por favor). La memoria atada en referencias circulares " -"entre objetos no se libera. Es posible que parte de la memoria asignada por " -"los módulos de extensión no se libere. Algunas extensiones pueden no " -"funcionar correctamente si su rutina de inicialización se llama más de una " -"vez; Esto puede suceder si una aplicación llama a :c:func:`Py_Initialize` y :" +"**Bugs and caveats:** La destrucción de módulos y objetos en módulos se " +"realiza en orden aleatorio; esto puede provocar que los destructores " +"(métodos :meth:`~object.__del__`) fallen cuando dependen de otros objetos " +"(incluso funciones) o módulos. Los módulos de extensión cargados " +"dinámicamente por Python no se descargan. Es posible que pequeñas cantidades " +"de memoria asignadas por el intérprete de Python no se liberen (si encuentra " +"una fuga, infórmelo). La memoria atada en referencias circulares entre " +"objetos no se libera. Es posible que no se libere parte de la memoria " +"asignada por los módulos de extensión. Es posible que algunas extensiones no " +"funcionen correctamente si su rutina de inicialización se llama más de una " +"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:429 @@ -885,15 +866,14 @@ msgstr "" "obtener una cadena de tipo :c:expr:`wchar_*`." #: ../Doc/c-api/init.rst:473 -#, fuzzy msgid "" "Return the program name set with :c:member:`PyConfig.program_name`, or the " "default. The returned string points into static storage; the caller should " "not modify its value." msgstr "" -"Retorna el nombre del programa establecido con :c:func:`Py_SetProgramName`, " -"o el valor predeterminado. La cadena de caracteres retornada apunta al " -"almacenamiento estático; la persona que llama no debe modificar su valor." +"Devuelve el nombre del programa establecido con :c:member:`PyConfig." +"program_name` o el valor predeterminado. La cadena devuelta apunta a un " +"almacenamiento estático; el llamador no debe modificar su valor." #: ../Doc/c-api/init.rst:477 ../Doc/c-api/init.rst:499 #: ../Doc/c-api/init.rst:543 ../Doc/c-api/init.rst:564 @@ -915,10 +895,9 @@ msgstr "" #: ../Doc/c-api/init.rst:483 ../Doc/c-api/init.rst:570 msgid "Get :data:`sys.executable` instead." -msgstr "" +msgstr "Obtenga :data:`sys.executable` en su lugar." #: ../Doc/c-api/init.rst:489 -#, fuzzy msgid "" "Return the *prefix* for installed platform-independent files. This is " "derived through a number of complicated rules from the program name set " @@ -931,24 +910,23 @@ msgid "" "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 " -"del nombre del programa establecido con :c:func:`Py_SetProgramName` y " +"Devuelve el *prefix* para los archivos instalados independientes de la " +"plataforma. Esto se deriva a través de una serie de reglas complicadas del " +"nombre del programa establecido con :c:member:`PyConfig.program_name` y " "algunas variables de entorno; por ejemplo, si el nombre del programa es ``'/" -"usr/local/bin/python'``, el prefijo es ``'/usr/local'``. La cadena de " -"caracteres retornada apunta al almacenamiento estático; la persona que llama " -"no debe modificar su valor. Esto corresponde a la variable :makevar:`prefix` " -"en el archivo de nivel superior :file:`Makefile` y el argumento ``--prefix`` " -"a la secuencia de comandos (*script*) :program:`configure` en tiempo de " -"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." +"usr/local/bin/python'``, el prefijo es ``'/usr/local'``. La cadena devuelta " +"apunta a un almacenamiento estático; el llamador no debe modificar su valor. " +"Esto corresponde a la variable :makevar:`prefix` en el :file:`Makefile` de " +"nivel superior y al argumento :option:`--prefix` del script :program:" +"`configure` en el momento de la compilación. El valor está disponible para " +"el código Python como ``sys.prefix``. Solo es útil en Unix. Consulte también " +"la siguiente función." #: ../Doc/c-api/init.rst:505 msgid "Get :data:`sys.prefix` instead." -msgstr "" +msgstr "Obtenga :data:`sys.prefix` en su lugar." #: ../Doc/c-api/init.rst:511 -#, fuzzy msgid "" "Return the *exec-prefix* for installed platform-*dependent* files. This is " "derived through a number of complicated rules from the program name set " @@ -961,17 +939,17 @@ msgid "" "value is available to Python code as ``sys.exec_prefix``. It is only useful " "on Unix." msgstr "" -"Retorna el *exec-prefix* para los archivos instalados *dependientes* de la " -"plataforma. Esto se deriva a través de una serie de reglas complicadas del " -"nombre del programa establecido con :c:func:`Py_SetProgramName` y algunas " -"variables de entorno; por ejemplo, si el nombre del programa es ``'/usr/" -"local/bin/python'``, el prefijo `exec` es ``'/usr/local'``. La cadena de " -"caracteres retornada apunta al almacenamiento estático; la persona que llama " -"no debe modificar su valor. Esto corresponde a la variable :makevar:" -"`exec_prefix` en el archivo de nivel superior :file:`Makefile` y el " -"argumento ``--exec-prefix`` a la secuencia de comandos (*script*) :program:" -"`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." +"Devuelve el *exec-prefix* para los archivos instalados de la plataforma " +"*dependent*. Esto se deriva a través de una serie de reglas complicadas del " +"nombre del programa establecido con :c:member:`PyConfig.program_name` y " +"algunas variables de entorno; por ejemplo, si el nombre del programa es ``'/" +"usr/local/bin/python'``, el prefijo de ejecución es ``'/usr/local'``. La " +"cadena devuelta apunta a un almacenamiento estático; el llamador no debe " +"modificar su valor. Esto corresponde a la variable :makevar:`exec_prefix` en " +"el :file:`Makefile` de nivel superior y al argumento ``--exec-prefix`` del " +"script :program:`configure` en el momento de la compilación. El valor está " +"disponible para el código Python como ``sys.exec_prefix``. Solo es útil en " +"Unix." #: ../Doc/c-api/init.rst:521 msgid "" @@ -1028,10 +1006,9 @@ msgstr "" #: ../Doc/c-api/init.rst:549 msgid "Get :data:`sys.exec_prefix` instead." -msgstr "" +msgstr "Obtenga :data:`sys.exec_prefix` en su lugar." #: ../Doc/c-api/init.rst:558 -#, fuzzy 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 " @@ -1039,15 +1016,14 @@ msgid "" "into static storage; the caller should not modify its value. The value is " "available to Python code as ``sys.executable``." msgstr "" -"Retorna el nombre completo del programa del ejecutable de Python; esto se " -"calcula como un efecto secundario de derivar la ruta de búsqueda " -"predeterminada del módulo del nombre del programa (establecido por :c:func:" -"`Py_SetProgramName` arriba). La cadena de caracteres retornada apunta al " -"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``." +"Devuelve el nombre completo del programa ejecutable de Python; esto se " +"calcula como un efecto secundario de derivar la ruta de búsqueda del módulo " +"predeterminado a partir del nombre del programa (establecido por :c:member:" +"`PyConfig.program_name`). La cadena devuelta apunta a un almacenamiento " +"estático; el llamador no debe modificar su valor. El valor está disponible " +"para el código Python como ``sys.executable``." #: ../Doc/c-api/init.rst:580 -#, fuzzy msgid "" "Return the default module search path; this is computed from the program " "name (set by :c:member:`PyConfig.program_name`) and some environment " @@ -1059,20 +1035,20 @@ msgid "" "startup; it can be (and usually is) modified later to change the search path " "for loading modules." msgstr "" -"Retorna la ruta de búsqueda del módulo predeterminado; esto se calcula a " -"partir del nombre del programa (establecido por :c:func:`Py_SetProgramName` " -"antes mencionado) y algunas variables de entorno. La cadena de caracteres " -"retornada consiste en una serie de nombres de directorio separados por un " -"carácter delimitador dependiente de la plataforma. El carácter delimitador " -"es ``':'`` en Unix y macOS, ``';'`` en Windows. La cadena de caracteres " -"retornada apunta al almacenamiento estático; la persona que llama no debe " -"modificar su valor. La lista :data:`sys.path` se inicializa con este valor " -"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." +"Devuelve la ruta de búsqueda del módulo predeterminada; esto se calcula a " +"partir del nombre del programa (establecido por :c:member:`PyConfig." +"program_name`) y algunas variables de entorno. La cadena devuelta consta de " +"una serie de nombres de directorio separados por un carácter delimitador " +"dependiente de la plataforma. El carácter delimitador es ``':'`` en Unix y " +"macOS, ``';'`` en Windows. La cadena devuelta apunta a un almacenamiento " +"estático; el llamador no debe modificar su valor. La lista :data:`sys.path` " +"se inicializa con este valor al iniciar el intérprete; se puede modificar (y " +"generalmente se modifica) más tarde para cambiar la ruta de búsqueda para " +"cargar módulos." #: ../Doc/c-api/init.rst:598 msgid "Get :data:`sys.path` instead." -msgstr "" +msgstr "Obtenga :data:`sys.path` en su lugar." #: ../Doc/c-api/init.rst:604 msgid "" @@ -1084,7 +1060,7 @@ msgstr "" #: ../Doc/c-api/init.rst:607 msgid "\"3.0a5+ (py3k:63103M, May 12 2008, 00:53:55) \\n[GCC 4.2.3]\"" -msgstr "" +msgstr "\"3.0a5+ (py3k:63103M, May 12 2008, 00:53:55) \\n[GCC 4.2.3]\"" #: ../Doc/c-api/init.rst:611 msgid "" @@ -1154,7 +1130,7 @@ msgstr "" #: ../Doc/c-api/init.rst:649 msgid "\"[GCC 2.7.2.2]\"" -msgstr "" +msgstr "\"[GCC 2.7.2.2]\"" #: ../Doc/c-api/init.rst:653 ../Doc/c-api/init.rst:667 msgid "" @@ -1176,7 +1152,7 @@ msgstr "" #: ../Doc/c-api/init.rst:663 msgid "\"#67, Aug 1 1997, 22:34:28\"" -msgstr "" +msgstr "\"#67, Aug 1 1997, 22:34:28\"" #: ../Doc/c-api/init.rst:679 msgid "" @@ -1249,17 +1225,15 @@ msgstr "" "`PyConfig.argv` de :ref:`Python Initialization Configuration `." #: ../Doc/c-api/init.rst:711 -#, fuzzy msgid "" "It is recommended that applications embedding the Python interpreter for " "purposes other than executing a single script pass ``0`` as *updatepath*, " "and update :data:`sys.path` themselves if desired. See :cve:`2008-5983`." msgstr "" "Se recomienda que las aplicaciones que incorporan el intérprete de Python " -"para otros fines que no sean ejecutar una sola secuencia de comandos " -"(*script*) pasen ``0`` como *updatepath* y actualicen :data:`sys.path` si lo " -"desean. Ver `CVE-2008-5983 `_." +"para fines distintos a la ejecución de un único script pasen ``0`` como " +"*updatepath* y actualicen :data:`sys.path` por sí mismas si así lo desean. " +"Consulte :cve:`2008-5983`." #: ../Doc/c-api/init.rst:716 msgid "" @@ -1273,7 +1247,7 @@ msgstr "" #: ../Doc/c-api/init.rst:720 msgid "PyRun_SimpleString(\"import sys; sys.path.pop(0)\\n\");" -msgstr "" +msgstr "PyRun_SimpleString(\"import sys; sys.path.pop(0)\\n\");" #: ../Doc/c-api/init.rst:732 msgid "" @@ -1333,24 +1307,22 @@ msgstr "" "contenido de este almacenamiento." #: ../Doc/c-api/init.rst:774 -#, fuzzy msgid "" "Return the default \"home\", that is, the value set by :c:member:`PyConfig." "home`, or the value of the :envvar:`PYTHONHOME` environment variable if it " "is set." msgstr "" -"Retorna el \"inicio\" (*home*) predeterminado, es decir, el valor " -"establecido por una llamada anterior a :c:func:`Py_SetPythonHome`, o el " -"valor de la variable de entorno :envvar:`PYTHONHOME` si está configurado." +"Devuelve el \"inicio\" predeterminado, es decir, el valor establecido por :c:" +"member:`PyConfig.home`, o el valor de la variable de entorno :envvar:" +"`PYTHONHOME` si está establecida." #: ../Doc/c-api/init.rst:784 -#, fuzzy msgid "" "Get :c:member:`PyConfig.home` or :envvar:`PYTHONHOME` environment variable " "instead." msgstr "" -"Establecido por la opción :option:`-O` y la variable de entorno :envvar:" -"`PYTHONOPTIMIZE`." +"Obtenga la variable de entorno :c:member:`PyConfig.home` o :envvar:" +"`PYTHONHOME` en su lugar." #: ../Doc/c-api/init.rst:792 msgid "Thread State and the Global Interpreter Lock" @@ -1426,6 +1398,11 @@ msgid "" "Reacquire the global interpreter lock.\n" "Restore the thread state from the local variable." msgstr "" +"Guarde el estado del subproceso en una variable local.\n" +"Libere el bloqueo del intérprete global.\n" +"... Realice alguna operación de E/S de bloqueo...\n" +"Recupere el bloqueo del intérprete global.\n" +"Restaure el estado del subproceso desde la variable local." #: ../Doc/c-api/init.rst:836 msgid "This is so common that a pair of macros exists to simplify it::" @@ -1437,6 +1414,9 @@ msgid "" "... Do some blocking I/O operation ...\n" "Py_END_ALLOW_THREADS" msgstr "" +"Py_BEGIN_ALLOW_THREADS\n" +"... Hace alguna operación bloqueante en I/O ...\n" +"Py_END_ALLOW_THREADS" #: ../Doc/c-api/init.rst:846 msgid "" @@ -1593,7 +1573,6 @@ msgstr "" "ejecución de CPython." #: ../Doc/c-api/init.rst:931 -#, 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` " @@ -1609,21 +1588,20 @@ msgid "" "after the fork. :c:func:`PyOS_AfterFork_Child` tries to reset the necessary " "locks, but is not always able to." msgstr "" -"El hecho de que solo permanezca al hilo \"actual\" significa que ningún " -"bloqueo retenido por otros hilos nunca se liberará. Python resuelve esto " +"El hecho de que solo permanezca el hilo \"actual\" significa que los " +"bloqueos mantenidos por otros hilos nunca se liberarán. Python resuelve esto " "para :func:`os.fork` adquiriendo los bloqueos que usa internamente antes de " -"la bifurcación (*fork*) y soltándolos después. Además, restablece cualquier :" -"ref:`lock-objects` en el elemento secundario. Al extender o incrustar " -"Python, no hay forma de informar a Python de bloqueos adicionales (que no " -"sean Python) que deben adquirirse antes o restablecerse después de una " -"bifurcación. Las instalaciones del sistema operativo como :c:func:" -"`pthread_atfork` tendrían que usarse para lograr lo mismo. Además, al " -"extender o incrustar Python, llamando :c:func:`fork` directamente en lugar " -"de a través de :func:`os.fork` (y retornar o llamar a Python) puede resultar " -"en un punto muerto (*deadlock*) por uno de los bloqueos internos de Python. " -"sostenido por un hilo que no funciona después del *fork*. :c:func:" -"`PyOS_AfterFork_Child` intenta restablecer los bloqueos necesarios, pero no " -"siempre puede hacerlo." +"la bifurcación y liberándolos después. Además, restablece cualquier :ref:" +"`lock-objects` en el hijo. Al extender o incrustar Python, no hay forma de " +"informar a Python de bloqueos adicionales (que no sean de Python) que deben " +"adquirirse antes o restablecerse después de una bifurcación. Se necesitarían " +"usar recursos del sistema operativo como :c:func:`!pthread_atfork` para " +"lograr lo mismo. Además, al extender o incrustar Python, llamar a :c:func:" +"`fork` directamente en lugar de a través de :func:`os.fork` (y regresar a " +"Python o llamar a Python) puede resultar en un bloqueo por uno de los " +"bloqueos internos de Python que está retenido por un hilo que está inactivo " +"después de la bifurcación. :c:func:`PyOS_AfterFork_Child` intenta " +"restablecer los bloqueos necesarios, pero no siempre puede hacerlo." #: ../Doc/c-api/init.rst:946 msgid "" @@ -1686,19 +1664,16 @@ msgstr "" "pertenezcan." #: ../Doc/c-api/init.rst:979 -#, fuzzy msgid "" "This data structure represents the state of a single thread. The only " "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." +"Esta estructura de datos representa el estado de un único subproceso. El " +"único miembro de datos público es:" #: ../Doc/c-api/init.rst:984 -#, fuzzy msgid "This thread's interpreter state." -msgstr "Retorna el objeto de estado del intérprete principal." +msgstr "Estado del intérprete de este hilo." #: ../Doc/c-api/init.rst:995 msgid "Deprecated function which does nothing." @@ -1754,7 +1729,6 @@ msgstr "" #: ../Doc/c-api/init.rst:1030 ../Doc/c-api/init.rst:1089 #: ../Doc/c-api/init.rst:1371 -#, 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 " @@ -1762,11 +1736,11 @@ msgid "" "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." +"Si se llama a esta función desde un subproceso cuando el entorno de " +"ejecución está finalizando, se terminará el subproceso, incluso si Python no " +"lo creó. 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 finalización no deseada." #: ../Doc/c-api/init.rst:1038 msgid "" @@ -1779,9 +1753,8 @@ msgstr "" "error fatal (por lo que la persona que llama no necesita verificar ``NULL``)." #: ../Doc/c-api/init.rst:1042 -#, fuzzy msgid "See also :c:func:`PyThreadState_GetUnchecked`." -msgstr "Vea también :c:func:`PyEval_GetFrame`." +msgstr "Véase también :c:func:`PyThreadState_GetUnchecked`." #: ../Doc/c-api/init.rst:1047 msgid "" @@ -1789,12 +1762,17 @@ msgid "" "fatal error if it is NULL. The caller is responsible to check if the result " "is NULL." msgstr "" +"Similar a :c:func:`PyThreadState_Get`, pero no mata el proceso con un error " +"fatal si es NULL. El llamador es responsable de verificar si el resultado es " +"NULL." #: ../Doc/c-api/init.rst:1051 msgid "" "In Python 3.5 to 3.12, the function was private and known as " "``_PyThreadState_UncheckedGet()``." msgstr "" +"En Python 3.5 a 3.12, la función era privada y se conocía como " +"``_PyThreadState_UncheckedGet()``." #: ../Doc/c-api/init.rst:1058 msgid "" @@ -2060,17 +2038,16 @@ msgstr "" "llamada previa a :c:func:`PyThreadState_Clear`." #: ../Doc/c-api/init.rst:1220 -#, fuzzy msgid "" "Destroy the current thread state and release the global interpreter lock. " "Like :c:func:`PyThreadState_Delete`, the global interpreter lock must be " "held. The thread state must have been reset with a previous call to :c:func:" "`PyThreadState_Clear`." msgstr "" -"Destruye un objeto de estado de hilo y suelta el bloqueo del intérprete " -"global. Como :c:func:`PyThreadState_Delete`, no es necesario mantener el " -"bloqueo del intérprete global. El estado del hilo debe haberse restablecido " -"con una llamada anterior a :c:func:`PyThreadState_Clear`." +"Destruye el estado actual del subproceso y libera el bloqueo global del " +"intérprete. Al igual que en :c:func:`PyThreadState_Delete`, el bloqueo " +"global del intérprete debe mantenerse. El estado del subproceso debe haberse " +"restablecido con una llamada anterior a :c:func:`PyThreadState_Clear`." #: ../Doc/c-api/init.rst:1228 msgid "Get the current frame of the Python thread state *tstate*." @@ -2226,7 +2203,6 @@ msgstr "" "que llama debe asumir que no hay disponible ningún estado del hilo actual." #: ../Doc/c-api/init.rst:1352 -#, 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. " @@ -2237,14 +2213,15 @@ msgid "" "``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 " -"del hilo del hilo de destino; *exc* es el objeto de excepción que se debe " -"generar. Esta función no roba ninguna referencia a *exc*. Para evitar el uso " -"indebido ingenuo, debe escribir su propia extensión C para llamar a esto. " -"Debe llamarse con el GIL retenido. Retorna el número de estados de hilo " -"modificados; normalmente es uno, pero será cero si no se encuentra la " -"identificación del hilo. Si *exc* es :const:`NULL`, se borra la excepción " -"pendiente (si existe) para el hilo. Esto no lanza excepciones." +"Generar una excepción de forma asincrónica en un subproceso. El argumento " +"*id* es el identificador del subproceso de destino; *exc* es el objeto de " +"excepción que se va a generar. Esta función no roba ninguna referencia a " +"*exc*. Para evitar un uso indebido ingenuo, debe escribir su propia " +"extensión C para llamarla. Debe llamarse con el GIL en su poder. Devuelve la " +"cantidad de estados de subproceso modificados; normalmente es uno, pero será " +"cero si no se encuentra el identificador del subproceso. Si *exc* es " +"``NULL``, se borra la excepción pendiente (si la hay) para el subproceso. " +"Esto no genera excepciones." #: ../Doc/c-api/init.rst:1360 msgid "" @@ -2356,16 +2333,23 @@ msgid "" "values are used only in :c:func:`Py_NewInterpreterFromConfig` and never " "modified by the runtime." msgstr "" +"Estructura que contiene la mayoría de los parámetros para configurar un " +"subintérprete. Sus valores se utilizan únicamente en :c:func:" +"`Py_NewInterpreterFromConfig` y nunca son modificados por el entorno de " +"ejecución." #: ../Doc/c-api/init.rst:1427 msgid "Structure fields:" -msgstr "" +msgstr "Campos de estructura:" #: ../Doc/c-api/init.rst:1431 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 "" +"Si se trata de ``0``, el subintérprete utilizará su propio estado de " +"asignador de \"objetos\". De lo contrario, utilizará (compartirá) el del " +"intérprete principal." #: ../Doc/c-api/init.rst:1435 msgid "" @@ -2374,6 +2358,10 @@ msgid "" "then :c:member:`~PyInterpreterConfig.gil` must not be :c:macro:" "`PyInterpreterConfig_OWN_GIL`." msgstr "" +"Si es ``0``, entonces :c:member:`~PyInterpreterConfig." +"check_multi_interp_extensions` debe ser ``1`` (distinto de cero). Si es " +"``1``, entonces :c:member:`~PyInterpreterConfig.gil` no debe ser :c:macro:" +"`PyInterpreterConfig_OWN_GIL`." #: ../Doc/c-api/init.rst:1443 msgid "" @@ -2381,11 +2369,16 @@ msgid "" "any thread where the sub-interpreter is currently active. Otherwise fork is " "unrestricted." msgstr "" +"Si es ``0``, el entorno de ejecución no admitirá la bifurcación del proceso " +"en ningún subproceso en el que el subintérprete esté activo en ese momento. " +"De lo contrario, la bifurcación no tendrá restricciones." #: ../Doc/c-api/init.rst:1447 msgid "" "Note that the :mod:`subprocess` module still works when fork is disallowed." msgstr "" +"Tenga en cuenta que el módulo :mod:`subprocess` aún funciona cuando no se " +"permite la bifurcación." #: ../Doc/c-api/init.rst:1452 msgid "" @@ -2393,17 +2386,25 @@ msgid "" "process via exec (e.g. :func:`os.execv`) in any thread where the sub-" "interpreter is currently active. Otherwise exec is unrestricted." msgstr "" +"Si se trata de ``0``, el entorno de ejecución no admitirá la sustitución del " +"proceso actual mediante exec (por ejemplo, :func:`os.execv`) en ningún " +"subproceso en el que el subintérprete esté activo en ese momento. De lo " +"contrario, exec no tendrá restricciones." #: ../Doc/c-api/init.rst:1457 msgid "" "Note that the :mod:`subprocess` module still works when exec is disallowed." msgstr "" +"Tenga en cuenta que el módulo :mod:`subprocess` aún funciona cuando la " +"ejecución no está permitida." #: ../Doc/c-api/init.rst:1462 msgid "" "If this is ``0`` then the sub-interpreter's :mod:`threading` module won't " "create threads. Otherwise threads are allowed." msgstr "" +"Si se trata de ``0``, el módulo :mod:`threading` del subintérprete no creará " +"subprocesos. De lo contrario, se permiten los subprocesos." #: ../Doc/c-api/init.rst:1468 msgid "" @@ -2411,6 +2412,9 @@ msgid "" "create daemon threads. Otherwise daemon threads are allowed (as long as :c:" "member:`~PyInterpreterConfig.allow_threads` is non-zero)." msgstr "" +"Si se trata de ``0``, el módulo :mod:`threading` del subintérprete no creará " +"subprocesos de demonio. De lo contrario, se permiten subprocesos de demonio " +"(siempre que :c:member:`~PyInterpreterConfig.allow_threads` no sea cero)." #: ../Doc/c-api/init.rst:1475 msgid "" @@ -2420,38 +2424,49 @@ msgid "" "pep:`489`) may be imported. (Also see :c:macro:" "`Py_mod_multiple_interpreters`.)" msgstr "" +"Si se trata de ``0``, se podrán importar todos los módulos de extensión, " +"incluidos los módulos heredados (inicio monofásico), en cualquier subproceso " +"en el que el subintérprete esté activo en ese momento. De lo contrario, solo " +"se podrán importar los módulos de extensión de inicio multifásico (consulte :" +"pep:`489`). (Consulte también :c:macro:`Py_mod_multiple_interpreters`)." #: ../Doc/c-api/init.rst:1482 msgid "" "This must be ``1`` (non-zero) if :c:member:`~PyInterpreterConfig." "use_main_obmalloc` is ``0``." msgstr "" +"Debe ser ``1`` (distinto de cero) si :c:member:`~PyInterpreterConfig." +"use_main_obmalloc` es ``0``." #: ../Doc/c-api/init.rst:1487 msgid "" "This determines the operation of the GIL for the sub-interpreter. It may be " "one of the following:" msgstr "" +"Esto determina el funcionamiento del GIL para el subintérprete. Puede ser " +"uno de los siguientes:" #: ../Doc/c-api/init.rst:1494 msgid "Use the default selection (:c:macro:`PyInterpreterConfig_SHARED_GIL`)." msgstr "" +"Utilice la selección predeterminada (:c:macro:" +"`PyInterpreterConfig_SHARED_GIL`)." #: ../Doc/c-api/init.rst:1498 -#, fuzzy msgid "Use (share) the main interpreter's GIL." -msgstr "Retorna el objeto de estado del intérprete principal." +msgstr "Utilice (comparta) el GIL del intérprete principal." #: ../Doc/c-api/init.rst:1502 -#, fuzzy msgid "Use the sub-interpreter's own GIL." -msgstr "Obtiene el intérprete actual." +msgstr "Utilice el GIL propio del subintérprete." #: ../Doc/c-api/init.rst:1504 msgid "" "If this is :c:macro:`PyInterpreterConfig_OWN_GIL` then :c:member:" "`PyInterpreterConfig.use_main_obmalloc` must be ``0``." msgstr "" +"Si es :c:macro:`PyInterpreterConfig_OWN_GIL`, entonces :c:member:" +"`PyInterpreterConfig.use_main_obmalloc` debe ser ``0``." #: ../Doc/c-api/init.rst:1518 msgid "" @@ -2480,9 +2495,10 @@ msgid "" "The given *config* controls the options with which the interpreter is " "initialized." msgstr "" +"El *config* dado controla las opciones con las que se inicializa el " +"intérprete." #: ../Doc/c-api/init.rst:1531 -#, fuzzy msgid "" "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 " @@ -2492,17 +2508,14 @@ msgid "" "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. " -"Tenga en cuenta que no se crea ningún hilo real; vea la discusión de los " -"estados del hilo a continuación. Si la creación del nuevo intérprete no " -"tiene éxito, se retorna ``NULL``; no se establece ninguna excepción, ya que " -"el estado de excepción se almacena en el estado actual del hilo y es posible " -"que no haya un estado actual del hilo. (Al igual que todas las otras " -"funciones de Python/C API, el bloqueo global del intérprete debe mantenerse " -"antes de llamar a esta función y aún se mantiene cuando regresa; sin " -"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.)" +"Si la creación del nuevo intérprete es exitosa, *tstate_p* se establecerá en " +"el primer estado de subproceso creado en el nuevo subintérprete. Este estado " +"de subproceso se crea en el estado de subproceso actual. Tenga en cuenta que " +"no se crea ningún subproceso real; consulte la explicación de los estados de " +"subprocesos a continuación. Si la creación del nuevo intérprete no es " +"exitosa, *tstate_p* se establece en ``NULL``; no se establece ninguna " +"excepción ya que el estado de excepción se almacena en el estado de " +"subproceso actual y es posible que no haya un estado de subproceso actual." #: ../Doc/c-api/init.rst:1540 msgid "" @@ -2515,12 +2528,22 @@ msgid "" "by the current thread and the previously interpreter's GIL will remain " "released here." msgstr "" +"Al igual que todas las demás funciones de la API de Python/C, el bloqueo del " +"intérprete global debe mantenerse antes de llamar a esta función y aún se " +"mantiene cuando regresa. Asimismo, se debe establecer un estado de " +"subproceso actual en la entrada. En caso de éxito, el estado de subproceso " +"devuelto se establecerá como actual. Si el subintérprete se crea con su " +"propio GIL, se liberará el GIL del intérprete que realiza la llamada. Cuando " +"la función regresa, el GIL del nuevo intérprete será retenido por el " +"subproceso actual y el GIL del intérprete anterior permanecerá liberado aquí." #: ../Doc/c-api/init.rst:1551 msgid "" "Sub-interpreters are most effective when isolated from each other, with " "certain functionality restricted::" msgstr "" +"Los subintérpretes son más eficaces cuando están aislados unos de otros y " +"con ciertas funciones restringidas:" #: ../Doc/c-api/init.rst:1554 msgid "" @@ -2543,6 +2566,11 @@ msgid "" "`PyInterpreterState` values. A read-only copy of the config may be stored " "internally on the :c:type:`PyInterpreterState`." msgstr "" +"Tenga en cuenta que la configuración se utiliza solo brevemente y no se " +"modifica. Durante la inicialización, los valores de la configuración se " +"convierten en varios valores :c:type:`PyInterpreterState`. Es posible que se " +"almacene una copia de solo lectura de la configuración internamente en el :c:" +"type:`PyInterpreterState`." #: ../Doc/c-api/init.rst:1574 msgid "Extension modules are shared between (sub-)interpreters as follows:" @@ -2607,9 +2635,13 @@ msgid "" "interpreter's GIL, allows fork/exec, allows daemon threads, and allows " "single-phase init modules." msgstr "" +"Cree un nuevo subintérprete. Básicamente, se trata de un envoltorio de :c:" +"func:`Py_NewInterpreterFromConfig` con una configuración que conserva el " +"comportamiento existente. El resultado es un subintérprete no aislado que " +"comparte el GIL del intérprete principal, permite fork/exec, permite " +"subprocesos de demonio y permite módulos de inicialización monofásicos." #: ../Doc/c-api/init.rst:1625 -#, 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 " @@ -2618,24 +2650,26 @@ msgid "" "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 " -"los estados del hilo a continuación. Cuando la llamada regresa, el estado " -"actual del hilo es ``NULL``. Todos los estados de hilo asociados con este " -"intérprete se destruyen. (El bloqueo global del intérprete debe mantenerse " -"antes de llamar a esta función y aún se mantiene cuando vuelve). :c:func:" -"`Py_FinalizeEx` destruirá todos los subinterpretes que no se hayan destruido " -"explícitamente en ese punto." +"Destruye el (sub)intérprete representado por el estado del subproceso " +"indicado. El estado del subproceso indicado debe ser el estado actual del " +"subproceso. Consulta la explicación de los estados del subproceso a " +"continuación. Cuando la llamada retorna, el estado actual del subproceso es " +"``NULL``. Se destruyen todos los estados del subproceso asociados con este " +"intérprete. El bloqueo del intérprete global utilizado por el intérprete de " +"destino debe mantenerse antes de llamar a esta función. No se mantiene " +"ningún GIL cuando retorna." #: ../Doc/c-api/init.rst:1633 msgid "" ":c:func:`Py_FinalizeEx` will destroy all sub-interpreters that haven't been " "explicitly destroyed at that point." msgstr "" +":c:func:`Py_FinalizeEx` destruirá todos los subintérpretes que no hayan sido " +"destruidos explícitamente en ese momento." #: ../Doc/c-api/init.rst:1638 msgid "A Per-Interpreter GIL" -msgstr "" +msgstr "Un GIL por intérprete" #: ../Doc/c-api/init.rst:1640 msgid "" @@ -2648,6 +2682,14 @@ msgid "" "isolation also encourages a different approach to concurrency than that of " "just using threads. (See :pep:`554`.)" msgstr "" +"Con :c:func:`Py_NewInterpreterFromConfig` se puede crear un subintérprete " +"que esté completamente aislado de otros intérpretes, incluso con su propio " +"GIL. El beneficio más importante de este aislamiento es que un intérprete de " +"este tipo puede ejecutar código Python sin que otros intérpretes lo bloqueen " +"ni bloqueen a ningún otro. Por lo tanto, un único proceso Python puede " +"aprovechar realmente los múltiples núcleos de CPU al ejecutar código Python. " +"El aislamiento también fomenta un enfoque diferente de la concurrencia que " +"el de simplemente usar subprocesos. (Consulte :pep:`554`)." #: ../Doc/c-api/init.rst:1650 msgid "" @@ -2662,6 +2704,18 @@ msgid "" "been done for the builtin singletons, small integers, and a number of other " "builtin objects." msgstr "" +"El uso de un intérprete aislado requiere vigilancia para preservar ese " +"aislamiento. Esto significa especialmente no compartir ningún objeto o " +"estado mutable sin garantías sobre la seguridad de los subprocesos. Incluso " +"los objetos que de otro modo serían inmutables (por ejemplo, ``None``, ``(1, " +"5)``) normalmente no se pueden compartir debido al recuento de referencias. " +"Un enfoque simple pero menos eficiente para evitar esto es usar un bloqueo " +"global alrededor de todo uso de algún estado (u objeto). Alternativamente, " +"los objetos efectivamente inmutables (como números enteros o cadenas) se " +"pueden hacer seguros a pesar de sus recuentos de referencias al convertirlos " +"en :term:`immortal`. De hecho, esto se ha hecho para los singletons " +"integrados, los números enteros pequeños y una serie de otros objetos " +"integrados." #: ../Doc/c-api/init.rst:1661 msgid "" @@ -2670,6 +2724,11 @@ msgid "" "to preserve isolation will expose you to the full consequences of free-" "threading, including races and hard-to-debug crashes." msgstr "" +"Si preserva el aislamiento, tendrá acceso a una computación multinúcleo " +"adecuada sin las complicaciones que conlleva el uso de subprocesos libres. " +"Si no preserva el aislamiento, se expondrá a todas las consecuencias del uso " +"de subprocesos libres, incluidas las carreras y los fallos difíciles de " +"depurar." #: ../Doc/c-api/init.rst:1666 msgid "" @@ -2680,6 +2739,13 @@ msgid "" "of preserving isolation and expose effective tools for communicating (and " "sharing) data between interpreters." msgstr "" +"Aparte de eso, uno de los principales desafíos de usar varios intérpretes " +"aislados es cómo comunicarse entre ellos de forma segura (sin romper el " +"aislamiento) y eficiente. El entorno de ejecución y la biblioteca estándar " +"aún no ofrecen ningún enfoque estándar para esto. Un futuro módulo de la " +"biblioteca estándar ayudaría a mitigar el esfuerzo de preservar el " +"aislamiento y expondría herramientas efectivas para comunicar (y compartir) " +"datos entre intérpretes." #: ../Doc/c-api/init.rst:1677 msgid "Bugs and caveats" @@ -2883,7 +2949,6 @@ msgstr "" "rastreo a nivel de Python en versiones anteriores." #: ../Doc/c-api/init.rst:1778 -#, 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 " @@ -2894,13 +2959,13 @@ msgid "" "`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:" +"El tipo de la función de seguimiento registrada mediante :c:func:" "`PyEval_SetProfile` y :c:func:`PyEval_SetTrace`. El primer parámetro es el " "objeto pasado a la función de registro como *obj*, *frame* es el objeto de " -"marco al que pertenece el evento, *what* es una de las constantes :const:" -"`PyTrace_CALL`, :const:`PyTrace_EXCEPTION` , :const:`PyTrace_LINE`, :const:" -"`PyTrace_RETURN`, :const:`PyTrace_C_CALL`, :const:`PyTrace_C_EXCEPTION`, :" -"const:`PyTrace_C_RETURN`, o :const:`PyTrace_OPCODE`, y *arg* depende de el " +"marco al que pertenece el evento, *what* es una de las constantes :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` o :c:data:`PyTrace_OPCODE`, y *arg* depende del " "valor de *what*:" #: ../Doc/c-api/init.rst:1787 @@ -2912,9 +2977,8 @@ msgid "Meaning of *arg*" msgstr "Significado de *arg*" #: ../Doc/c-api/init.rst:1789 -#, fuzzy msgid ":c:data:`PyTrace_CALL`" -msgstr ":const:`PyTrace_CALL`" +msgstr ":c:data:`PyTrace_CALL`" #: ../Doc/c-api/init.rst:1789 ../Doc/c-api/init.rst:1794 #: ../Doc/c-api/init.rst:1805 @@ -2922,23 +2986,20 @@ msgid "Always :c:data:`Py_None`." msgstr "Siempre :c:data:`Py_None`." #: ../Doc/c-api/init.rst:1791 -#, fuzzy msgid ":c:data:`PyTrace_EXCEPTION`" -msgstr ":const:`PyTrace_EXCEPTION`" +msgstr ":c:data:`PyTrace_EXCEPTION`" #: ../Doc/c-api/init.rst:1791 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:1794 -#, fuzzy msgid ":c:data:`PyTrace_LINE`" -msgstr ":const:`PyTrace_LINE`" +msgstr ":c:data:`PyTrace_LINE`" #: ../Doc/c-api/init.rst:1796 -#, fuzzy msgid ":c:data:`PyTrace_RETURN`" -msgstr ":const:`PyTrace_RETURN`" +msgstr ":c:data:`PyTrace_RETURN`" #: ../Doc/c-api/init.rst:1796 msgid "" @@ -2947,9 +3008,8 @@ msgstr "" "Valor retornado al que llama, o ``NULL`` si es causado por una excepción." #: ../Doc/c-api/init.rst:1799 -#, fuzzy msgid ":c:data:`PyTrace_C_CALL`" -msgstr ":const:`PyTrace_C_CALL`" +msgstr ":c:data:`PyTrace_C_CALL`" #: ../Doc/c-api/init.rst:1799 ../Doc/c-api/init.rst:1801 #: ../Doc/c-api/init.rst:1803 @@ -2957,19 +3017,16 @@ msgid "Function object being called." msgstr "Objeto función que se llaman." #: ../Doc/c-api/init.rst:1801 -#, fuzzy msgid ":c:data:`PyTrace_C_EXCEPTION`" -msgstr ":const:`PyTrace_C_EXCEPTION`" +msgstr ":c:data:`PyTrace_C_EXCEPTION`" #: ../Doc/c-api/init.rst:1803 -#, fuzzy msgid ":c:data:`PyTrace_C_RETURN`" -msgstr ":const:`PyTrace_C_RETURN`" +msgstr ":c:data:`PyTrace_C_RETURN`" #: ../Doc/c-api/init.rst:1805 -#, fuzzy msgid ":c:data:`PyTrace_OPCODE`" -msgstr ":const:`PyTrace_OPCODE`" +msgstr ":c:data:`PyTrace_OPCODE`" #: ../Doc/c-api/init.rst:1810 msgid "" @@ -3007,17 +3064,16 @@ msgstr "" "no los necesita." #: ../Doc/c-api/init.rst:1830 -#, fuzzy 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 " "reported. It may be disabled for a frame by setting :attr:`~frame." "f_trace_lines` to *0* on that frame." msgstr "" -"El valor pasado como parámetro *what* a una función :c:type:`Py_tracefunc` " -"(pero no una función de creación de perfiles) cuando se informa un evento de " -"número de línea. Puede deshabilitarse para un marco configurando :attr:" -"`f_trace_lines` en *0* en ese marco." +"El valor que se pasa como parámetro *what* a una función :c:type:" +"`Py_tracefunc` (pero no a una función de creación de perfiles) cuando se " +"informa un evento de número de línea. Se puede desactivar para un marco " +"configurando :attr:`~frame.f_trace_lines` en *0* en ese marco." #: ../Doc/c-api/init.rst:1838 msgid "" @@ -3052,21 +3108,19 @@ msgstr "" "una función C ha retornado." #: ../Doc/c-api/init.rst:1862 -#, fuzzy 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 " "event is not emitted by default: it must be explicitly requested by setting :" "attr:`~frame.f_trace_opcodes` to *1* on the frame." msgstr "" -"El valor del parámetro *what* para funciones :c:type:`Py_tracefunc` (pero no " -"funciones de creación de perfiles) cuando un nuevo código de operación está " -"a punto de ejecutarse. Este evento no se emite de forma predeterminada: debe " -"solicitarse explícitamente estableciendo :attr:`f_trace_opcodes` en *1* en " -"el marco." +"El valor del parámetro *what* para las funciones :c:type:`Py_tracefunc` " +"(pero no para las funciones de creación de perfiles) cuando está a punto de " +"ejecutarse un nuevo código de operación. Este evento no se emite de forma " +"predeterminada: debe solicitarse explícitamente configurando :attr:`~frame." +"f_trace_opcodes` en *1* en el marco." #: ../Doc/c-api/init.rst:1870 -#, 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``. " @@ -3075,13 +3129,13 @@ msgid "" "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 " -"de Python o ``NULL``. Si la función de perfilado necesita mantener el " -"estado, el uso de un valor diferente para *obj* para cada hilo proporciona " -"un lugar conveniente y seguro para guardarlo. Se llama a la función de " -"perfilado para todos los eventos supervisados, excepto :const:" -"`PyTrace_LINE` :const:`PyTrace_OPCODE` y :const:`PyTrace_EXCEPTION`." +"Establezca la función de perfilador en *func*. El parámetro *obj* se pasa a " +"la función como su primer parámetro y puede ser cualquier objeto Python o " +"``NULL``. Si la función de perfilador necesita mantener el estado, el uso de " +"un valor diferente para *obj* para cada subproceso proporciona un lugar " +"conveniente y seguro para subprocesos donde almacenarlo. La función de " +"perfilador se llama para todos los eventos monitoreados excepto :c:data:" +"`PyTrace_LINE`, :c:data:`PyTrace_OPCODE` y :c:data:`PyTrace_EXCEPTION`." #: ../Doc/c-api/init.rst:1877 msgid "See also the :func:`sys.setprofile` function." @@ -3098,15 +3152,20 @@ msgid "" "running threads belonging to the current interpreter instead of the setting " "it only on the current thread." msgstr "" +"Como :c:func:`PyEval_SetProfile`, pero establece la función de perfil en " +"todos los subprocesos en ejecución que pertenecen al intérprete actual en " +"lugar de configurarla solo en el subproceso actual." #: ../Doc/c-api/init.rst:1888 msgid "" "As :c:func:`PyEval_SetProfile`, this function ignores any exceptions raised " "while setting the profile functions in all threads." msgstr "" +"Al igual que :c:func:`PyEval_SetProfile`, esta función ignora cualquier " +"excepción generada al configurar las funciones de perfil en todos los " +"subprocesos." #: ../Doc/c-api/init.rst:1896 -#, fuzzy msgid "" "Set the tracing function to *func*. This is similar to :c:func:" "`PyEval_SetProfile`, except the tracing function does receive line-number " @@ -3116,13 +3175,13 @@ msgid "" "`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 " +"Establezca la función de seguimiento en *func*. Es similar a :c:func:" +"`PyEval_SetProfile`, excepto que la función de seguimiento recibe eventos de " "número de línea y eventos por código de operación, pero no recibe ningún " -"evento relacionado con los objetos de la función C. Cualquier función de " -"rastreo registrada con :c:func:`PyEval_SetTrace` no recibirá :const:" -"`PyTrace_C_CALL`, :const:`PyTrace_C_EXCEPTION` o :const:`PyTrace_C_RETURN` " -"como valor para el parámetro *what*." +"evento relacionado con los objetos de función C que se están llamando. " +"Cualquier función de seguimiento registrada con :c:func:`PyEval_SetTrace` no " +"recibirá :c:data:`PyTrace_C_CALL`, :c:data:`PyTrace_C_EXCEPTION` o :c:data:" +"`PyTrace_C_RETURN` como valor para el parámetro *what*." #: ../Doc/c-api/init.rst:1903 msgid "See also the :func:`sys.settrace` function." @@ -3134,16 +3193,22 @@ msgid "" "threads belonging to the current interpreter instead of the setting it only " "on the current thread." msgstr "" +"Como :c:func:`PyEval_SetTrace`, pero establece la función de seguimiento en " +"todos los subprocesos en ejecución que pertenecen al intérprete actual en " +"lugar de configurarla solo en el subproceso actual." #: ../Doc/c-api/init.rst:1914 msgid "" "As :c:func:`PyEval_SetTrace`, this function ignores any exceptions raised " "while setting the trace functions in all threads." msgstr "" +"Al igual que :c:func:`PyEval_SetTrace`, esta función ignora cualquier " +"excepción generada al configurar las funciones de seguimiento en todos los " +"subprocesos." #: ../Doc/c-api/init.rst:1920 msgid "Reference tracing" -msgstr "" +msgstr "Rastreo de referencia" #: ../Doc/c-api/init.rst:1926 msgid "" @@ -3154,24 +3219,29 @@ msgid "" "`PyRefTracer_DESTROY`). The **data** argument is the opaque pointer that was " "provided when :c:func:`PyRefTracer_SetTracer` was called." msgstr "" +"El tipo de la función de seguimiento registrada mediante :c:func:" +"`PyRefTracer_SetTracer`. El primer parámetro es un objeto Python que se " +"acaba de crear (cuando **event** se establece en :c:data:" +"`PyRefTracer_CREATE`) o que está a punto de destruirse (cuando **event** se " +"establece en :c:data:`PyRefTracer_DESTROY`). El argumento **data** es el " +"puntero opaco que se proporcionó cuando se llamó a :c:func:" +"`PyRefTracer_SetTracer`." #: ../Doc/c-api/init.rst:1936 -#, fuzzy msgid "" "The value for the *event* parameter to :c:type:`PyRefTracer` functions when " "a Python object has been created." msgstr "" -"El valor del parámetro *what* para :c:type:`Py_tracefunc` funciona cuando " -"una función C ha retornado." +"El valor del parámetro *event* a :c:type:`PyRefTracer` funciona cuando se ha " +"creado un objeto Python." #: ../Doc/c-api/init.rst:1941 -#, fuzzy msgid "" "The value for the *event* parameter to :c:type:`PyRefTracer` functions when " "a Python object has been destroyed." msgstr "" -"El valor del parámetro *what* para :c:type:`Py_tracefunc` funciona cuando " -"una función C ha retornado." +"El valor del parámetro *event* a :c:type:`PyRefTracer` funciona cuando se ha " +"destruido un objeto Python." #: ../Doc/c-api/init.rst:1946 msgid "" @@ -3181,6 +3251,11 @@ msgid "" "the tracer function is called. Return ``0`` on success. Set an exception and " "return ``-1`` on error." msgstr "" +"Registra una función de rastreo de referencia. La función se llamará cuando " +"se haya creado un nuevo Python o cuando se vaya a destruir un objeto. Si se " +"proporciona **data**, debe ser un puntero opaco que se proporcionará cuando " +"se llame a la función de rastreo. Devuelve ``0`` en caso de éxito. Establece " +"una excepción y devuelve ``-1`` en caso de error." #: ../Doc/c-api/init.rst:1952 msgid "" @@ -3189,13 +3264,15 @@ msgid "" "any existing exception or set an exception. The GIL will be held every time " "the tracer function is called." msgstr "" +"No es que las funciones de seguimiento **must not** creen objetos Python en " +"su interior, de lo contrario la llamada será reentrante. El seguimiento " +"también **must not** borra cualquier excepción existente o establece una " +"excepción. El GIL se mantendrá cada vez que se llame a la función de " +"seguimiento." #: ../Doc/c-api/init.rst:1957 ../Doc/c-api/init.rst:1968 -#, fuzzy msgid "The GIL must be held when calling this function." -msgstr "" -"El GIL *no* necesita ser retenido al llamar a estas funciones; proporcionan " -"su propio bloqueo." +msgstr "El GIL debe mantenerse al llamar a esta función." #: ../Doc/c-api/init.rst:1963 msgid "" @@ -3204,6 +3281,10 @@ msgid "" "called. If no tracer was registered this function will return NULL and will " "set the **data** pointer to NULL." msgstr "" +"Obtenga la función de trazador de referencia registrada y el valor del " +"puntero de datos opacos que se registró cuando se llamó a :c:func:" +"`PyRefTracer_SetTracer`. Si no se registró ningún trazador, esta función " +"devolverá NULL y establecerá el puntero **data** en NULL." #: ../Doc/c-api/init.rst:1975 msgid "Advanced Debugger Support" @@ -3502,21 +3583,23 @@ msgstr "" #: ../Doc/c-api/init.rst:2168 msgid "Synchronization Primitives" -msgstr "" +msgstr "Primitivas de sincronización" #: ../Doc/c-api/init.rst:2170 msgid "The C-API provides a basic mutual exclusion lock." -msgstr "" +msgstr "La C-API proporciona un bloqueo de exclusión mutua básico." #: ../Doc/c-api/init.rst:2174 msgid "" "A mutual exclusion lock. The :c:type:`!PyMutex` should be initialized to " "zero to represent the unlocked state. For example::" msgstr "" +"Un bloqueo de exclusión mutua. El :c:type:`!PyMutex` debe inicializarse a " +"cero para representar el estado desbloqueado. Por ejemplo:" #: ../Doc/c-api/init.rst:2177 msgid "PyMutex mutex = {0};" -msgstr "" +msgstr "PyMutex mutex = {0};" #: ../Doc/c-api/init.rst:2179 msgid "" @@ -3524,6 +3607,9 @@ msgid "" "contents and address of a :c:type:`!PyMutex` are meaningful, and it must " "remain at a fixed, writable location in memory." msgstr "" +"Las instancias de :c:type:`!PyMutex` no se deben copiar ni mover. Tanto el " +"contenido como la dirección de un :c:type:`!PyMutex` son significativos y " +"deben permanecer en una ubicación fija y escribible en la memoria." #: ../Doc/c-api/init.rst:2185 msgid "" @@ -3531,6 +3617,9 @@ msgid "" "considered unstable. The size may change in future Python releases without " "a deprecation period." msgstr "" +"Actualmente, un :c:type:`!PyMutex` ocupa un byte, pero el tamaño debe " +"considerarse inestable. El tamaño puede cambiar en futuras versiones de " +"Python sin un período de desuso." #: ../Doc/c-api/init.rst:2193 msgid "" @@ -3538,16 +3627,22 @@ msgid "" "will block until the mutex is unlocked. While blocked, the thread will " "temporarily release the :term:`GIL` if it is held." msgstr "" +"Bloqueo del mutex *m*. Si otro subproceso ya lo ha bloqueado, el subproceso " +"que realiza la llamada se bloqueará hasta que se desbloquee el mutex. " +"Mientras esté bloqueado, el subproceso liberará temporalmente el :term:`GIL` " +"si está retenido." #: ../Doc/c-api/init.rst:2201 msgid "" "Unlock mutex *m*. The mutex must be locked --- otherwise, the function will " "issue a fatal error." msgstr "" +"Desbloquee el mutex *m*. El mutex debe estar bloqueado; de lo contrario, la " +"función emitirá un error fatal." #: ../Doc/c-api/init.rst:2209 msgid "Python Critical Section API" -msgstr "" +msgstr "API de sección crítica de Python" #: ../Doc/c-api/init.rst:2211 msgid "" @@ -3556,6 +3651,11 @@ msgid "" "intended to replace reliance on the :term:`global interpreter lock`, and are " "no-ops in versions of Python with the global interpreter lock." msgstr "" +"La API de sección crítica proporciona una capa de prevención de bloqueos " +"sobre los bloqueos por objeto para :term:`free-threaded ` " +"CPython. Su objetivo es reemplazar la dependencia de :term:`global " +"interpreter lock` y no se pueden realizar operaciones en versiones de Python " +"con el bloqueo del intérprete global." #: ../Doc/c-api/init.rst:2216 msgid "" @@ -3566,6 +3666,13 @@ msgid "" "the critical section API provides weaker guarantees than traditional locks " "-- they are useful because their behavior is similar to the :term:`GIL`." msgstr "" +"Las secciones críticas evitan los bloqueos al suspender implícitamente las " +"secciones críticas activas y liberar los bloqueos durante las llamadas a :c:" +"func:`PyEval_SaveThread`. Cuando se llama a :c:func:`PyEval_RestoreThread`, " +"se reanuda la sección crítica más reciente y se vuelven a adquirir sus " +"bloqueos. Esto significa que la API de la sección crítica ofrece garantías " +"más débiles que los bloqueos tradicionales; son útiles porque su " +"comportamiento es similar al de :term:`GIL`." #: ../Doc/c-api/init.rst:2223 msgid "" @@ -3574,6 +3681,11 @@ msgid "" "expansions. Note that the sizes and contents of the structures may change in " "future Python versions." msgstr "" +"Las funciones y estructuras que utilizan las macros se exponen para los " +"casos en los que las macros de C no están disponibles. Solo se deben " +"utilizar como en las expansiones de macros indicadas. Tenga en cuenta que " +"los tamaños y contenidos de las estructuras pueden cambiar en futuras " +"versiones de Python." #: ../Doc/c-api/init.rst:2230 msgid "" @@ -3583,10 +3695,15 @@ msgid "" "suspend the outer critical sections. This API does not provide a way to " "lock more than two objects at once." msgstr "" +"Las operaciones que necesitan bloquear dos objetos a la vez deben utilizar :" +"c:macro:`Py_BEGIN_CRITICAL_SECTION2`. *cannot* utiliza secciones críticas " +"anidadas para bloquear más de un objeto a la vez, ya que la sección crítica " +"interna puede suspender las secciones críticas externas. Esta API no " +"proporciona una manera de bloquear más de dos objetos a la vez." #: ../Doc/c-api/init.rst:2236 msgid "Example usage::" -msgstr "" +msgstr "Ejemplo de uso::" #: ../Doc/c-api/init.rst:2238 msgid "" @@ -3599,6 +3716,14 @@ msgid "" " Py_RETURN_NONE;\n" "}" msgstr "" +"static PyObject *\n" +"set_field(MyObject *self, PyObject *value)\n" +"{\n" +" Py_BEGIN_CRITICAL_SECTION(self);\n" +" Py_SETREF(self->field, Py_XNewRef(value));\n" +" Py_END_CRITICAL_SECTION();\n" +" Py_RETURN_NONE;\n" +"}" #: ../Doc/c-api/init.rst:2247 msgid "" @@ -3609,17 +3734,25 @@ msgid "" "if the code triggered by the finalizer blocks and calls :c:func:" "`PyEval_SaveThread`." msgstr "" +"En el ejemplo anterior, :c:macro:`Py_SETREF` llama a :c:macro:`Py_DECREF`, " +"que puede llamar a código arbitrario a través de la función de desasignación " +"de un objeto. La API de sección crítica evita posibles bloqueos debido a la " +"reentrada y al orden de bloqueo al permitir que el entorno de ejecución " +"suspenda temporalmente la sección crítica si el código activado por el " +"finalizador se bloquea y llama a :c:func:`PyEval_SaveThread`." #: ../Doc/c-api/init.rst:2255 msgid "" "Acquires the per-object lock for the object *op* and begins a critical " "section." msgstr "" +"Adquiere el bloqueo por objeto para el objeto *op* y comienza una sección " +"crítica." #: ../Doc/c-api/init.rst:2258 ../Doc/c-api/init.rst:2272 #: ../Doc/c-api/init.rst:2287 ../Doc/c-api/init.rst:2301 msgid "In the free-threaded build, this macro expands to::" -msgstr "" +msgstr "En la compilación de subprocesos libres, esta macro se expande a:" #: ../Doc/c-api/init.rst:2260 msgid "" @@ -3627,24 +3760,29 @@ msgid "" " PyCriticalSection _py_cs;\n" " PyCriticalSection_Begin(&_py_cs, (PyObject*)(op))" msgstr "" +"{\n" +" PyCriticalSection _py_cs;\n" +" PyCriticalSection_Begin(&_py_cs, (PyObject*)(op))" #: ../Doc/c-api/init.rst:2264 ../Doc/c-api/init.rst:2293 msgid "In the default build, this macro expands to ``{``." -msgstr "" +msgstr "En la compilación predeterminada, esta macro se expande a ``{``." #: ../Doc/c-api/init.rst:2270 msgid "Ends the critical section and releases the per-object lock." -msgstr "" +msgstr "Finaliza la sección crítica y libera el bloqueo por objeto." #: ../Doc/c-api/init.rst:2274 msgid "" " PyCriticalSection_End(&_py_cs);\n" "}" msgstr "" +" PyCriticalSection_End(&_py_cs);\n" +"}" #: ../Doc/c-api/init.rst:2277 ../Doc/c-api/init.rst:2306 msgid "In the default build, this macro expands to ``}``." -msgstr "" +msgstr "En la compilación predeterminada, esta macro se expande a ``}``." #: ../Doc/c-api/init.rst:2283 msgid "" @@ -3652,6 +3790,9 @@ msgid "" "critical section. The locks are acquired in a consistent order (lowest " "address first) to avoid lock ordering deadlocks." msgstr "" +"Adquiere los bloqueos por objeto para los objetos *a* y *b* y comienza una " +"sección crítica. Los bloqueos se adquieren en un orden coherente (la " +"dirección más baja primero) para evitar bloqueos en el orden de bloqueo." #: ../Doc/c-api/init.rst:2289 msgid "" @@ -3659,176 +3800,177 @@ msgid "" " PyCriticalSection2 _py_cs2;\n" " PyCriticalSection_Begin2(&_py_cs2, (PyObject*)(a), (PyObject*)(b))" msgstr "" +"{\n" +" PyCriticalSection2 _py_cs2;\n" +" PyCriticalSection_Begin2(&_py_cs2, (PyObject*)(a), (PyObject*)(b))" #: ../Doc/c-api/init.rst:2299 msgid "Ends the critical section and releases the per-object locks." -msgstr "" +msgstr "Finaliza la sección crítica y libera los bloqueos por objeto." #: ../Doc/c-api/init.rst:2303 msgid "" " PyCriticalSection_End2(&_py_cs2);\n" "}" msgstr "" +" PyCriticalSection_End2(&_py_cs2);\n" +"}" #: ../Doc/c-api/init.rst:335 msgid "PyEval_InitThreads()" -msgstr "" +msgstr "PyEval_InitThreads()" #: ../Doc/c-api/init.rst:335 msgid "modules (in module sys)" -msgstr "" +msgstr "módulos (en el módulo sys)" #: ../Doc/c-api/init.rst:335 ../Doc/c-api/init.rst:576 msgid "path (in module sys)" -msgstr "" +msgstr "path (en el módulo sys)" #: ../Doc/c-api/init.rst:335 ../Doc/c-api/init.rst:576 #: ../Doc/c-api/init.rst:1011 ../Doc/c-api/init.rst:1510 #: ../Doc/c-api/init.rst:1605 msgid "module" -msgstr "" +msgstr "modulo" #: ../Doc/c-api/init.rst:335 ../Doc/c-api/init.rst:1510 #: ../Doc/c-api/init.rst:1605 msgid "builtins" -msgstr "" +msgstr "elementos incorporados" #: ../Doc/c-api/init.rst:335 ../Doc/c-api/init.rst:1510 #: ../Doc/c-api/init.rst:1605 msgid "__main__" -msgstr "" +msgstr "__main__" #: ../Doc/c-api/init.rst:335 ../Doc/c-api/init.rst:1510 #: ../Doc/c-api/init.rst:1605 msgid "sys" -msgstr "" +msgstr "sys" #: ../Doc/c-api/init.rst:335 ../Doc/c-api/init.rst:576 msgid "search" -msgstr "" +msgstr "buscar" #: ../Doc/c-api/init.rst:335 ../Doc/c-api/init.rst:576 msgid "path" -msgstr "" +msgstr "path" #: ../Doc/c-api/init.rst:335 ../Doc/c-api/init.rst:1570 #: ../Doc/c-api/init.rst:1623 msgid "Py_FinalizeEx (C function)" -msgstr "" +msgstr "Py_FinalizeEx (C function)" #: ../Doc/c-api/init.rst:445 -#, fuzzy msgid "Py_Initialize()" -msgstr ":c:func:`Py_IsInitialized`" +msgstr "Py_Initialize()" #: ../Doc/c-api/init.rst:445 ../Doc/c-api/init.rst:674 msgid "main()" -msgstr "" +msgstr "main()" #: ../Doc/c-api/init.rst:445 msgid "Py_GetPath()" -msgstr "" +msgstr "Py_GetPath()" #: ../Doc/c-api/init.rst:555 msgid "executable (in module sys)" -msgstr "" +msgstr "ejecutable (en el módulo sys)" #: ../Doc/c-api/init.rst:609 ../Doc/c-api/init.rst:651 #: ../Doc/c-api/init.rst:665 msgid "version (in module sys)" -msgstr "" +msgstr "version (in module sys)" #: ../Doc/c-api/init.rst:621 msgid "platform (in module sys)" -msgstr "" +msgstr "platform (en el módulo sys)" #: ../Doc/c-api/init.rst:638 msgid "copyright (in module sys)" -msgstr "" +msgstr "derechos de autor (en el módulo sys)" #: ../Doc/c-api/init.rst:674 msgid "Py_FatalError()" -msgstr "" +msgstr "Py_FatalError()" #: ../Doc/c-api/init.rst:674 msgid "argv (in module sys)" -msgstr "" +msgstr "argv (en el módulo sys)" #: ../Doc/c-api/init.rst:794 -#, fuzzy msgid "global interpreter lock" -msgstr "Estado del hilo y el bloqueo global del intérprete" +msgstr "bloqueo global del intérprete" #: ../Doc/c-api/init.rst:794 -#, fuzzy msgid "interpreter lock" -msgstr "Soporte de subinterprete" +msgstr "bloqueo de intérprete" #: ../Doc/c-api/init.rst:794 msgid "lock, interpreter" -msgstr "" +msgstr "bloqueo, interprete" #: ../Doc/c-api/init.rst:807 msgid "setswitchinterval (in module sys)" -msgstr "" +msgstr "setswitchinterval (in module sys)" #: ../Doc/c-api/init.rst:816 msgid "PyThreadState (C type)" -msgstr "" +msgstr "PyThreadState (C type)" #: ../Doc/c-api/init.rst:842 msgid "Py_BEGIN_ALLOW_THREADS (C macro)" -msgstr "" +msgstr "Py_BEGIN_ALLOW_THREADS (C macro)" #: ../Doc/c-api/init.rst:842 msgid "Py_END_ALLOW_THREADS (C macro)" -msgstr "" +msgstr "Py_END_ALLOW_THREADS (C macro)" #: ../Doc/c-api/init.rst:858 msgid "PyEval_RestoreThread (C function)" -msgstr "" +msgstr "PyEval_RestoreThread (C function)" #: ../Doc/c-api/init.rst:858 msgid "PyEval_SaveThread (C function)" -msgstr "" +msgstr "PyEval_SaveThread (C function)" #: ../Doc/c-api/init.rst:989 msgid "PyEval_AcquireThread()" -msgstr "" +msgstr "PyEval_AcquireThread()" #: ../Doc/c-api/init.rst:989 msgid "PyEval_ReleaseThread()" -msgstr "" +msgstr "PyEval_ReleaseThread()" #: ../Doc/c-api/init.rst:989 msgid "PyEval_SaveThread()" -msgstr "" +msgstr "PyEval_SaveThread()" #: ../Doc/c-api/init.rst:989 msgid "PyEval_RestoreThread()" -msgstr "" +msgstr "PyEval_RestoreThread()" #: ../Doc/c-api/init.rst:1011 msgid "_thread" -msgstr "" +msgstr "_thread" #: ../Doc/c-api/init.rst:1510 ../Doc/c-api/init.rst:1605 msgid "stdout (in module sys)" -msgstr "" +msgstr "stdout (in module sys)" #: ../Doc/c-api/init.rst:1510 ../Doc/c-api/init.rst:1605 msgid "stderr (in module sys)" -msgstr "" +msgstr "stderr (in module sys)" #: ../Doc/c-api/init.rst:1510 ../Doc/c-api/init.rst:1605 msgid "stdin (in module sys)" -msgstr "" +msgstr "stdin (in module sys)" #: ../Doc/c-api/init.rst:1570 -#, fuzzy msgid "Py_Initialize (C function)" -msgstr ":c:func:`Py_IsInitialized`" +msgstr "Py_Initialize (C function)" #: ../Doc/c-api/init.rst:1600 msgid "close (in module os)" -msgstr "" +msgstr "cerrar (en el módulo os)" diff --git a/dictionaries/c-api_init.txt b/dictionaries/c-api_init.txt index 512f5c6fbe..86d469745a 100644 --- a/dictionaries/c-api_init.txt +++ b/dictionaries/c-api_init.txt @@ -1,3 +1,6 @@ -pthreads -deadlock Reanudelos +deadlock +monofásico +monofásicos +multifásico +pthreads