# 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 # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-10-16 21:42+0200\n" "PO-Revision-Date: 2021-10-23 03:44-0500\n" "Last-Translator: José Luis Salgado Banda \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" "Generated-By: Babel 2.9.1\n" "X-Generator: Poedit 3.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 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." 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 " "versión menor (por ejemplo de 3.9 a 3.10), la mayoría de los cambios serán " "compatibles con la fuente, típicamente sólo agregando una nueva API. El " "cambio de la API existente o la eliminación de la API sólo se realiza " "después de un período obsoleto o para arreglar problemas graves." #: ../Doc/c-api/stable.rst:15 msgid "" "CPython's Application Binary Interface (ABI) is forward- and backwards-" "compatible across a minor release (if these are compiled the same way; see :" "ref:`stable-abi-platform` below). So, code compiled for Python 3.10.0 will " "work on 3.10.8 and vice versa, but will need to be compiled separately for " "3.9.x and 3.10.x." msgstr "" "La interfaz binaria de aplicación (ABI) de CPython es compatible con " "versiones posteriores y anteriores tras una versión menor (si se compilan de " "la misma forma; ver :ref:`stable-abi-platform` a continuación). Por lo " "tanto, el código que se compila para Python 3.10.0 funcionará en la 3.10.8 y " "viceversa, pero tendrá que compilarse por separado para 3.9.x y 3.10.x." #: ../Doc/c-api/stable.rst:21 msgid "" "Names prefixed by an underscore, such as ``_Py_InternalState``, are private " "API that can change without notice even in patch releases." 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:28 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:33 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." 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 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.)" 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 msgid "" "Define this macro before including ``Python.h`` to opt in to only use the " "Limited API, and to select the Limited API version." 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 msgid "" "Define ``Py_LIMITED_API`` to the value of :c:data:`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 " "version." msgstr "" "Se define ``Py_LIMITED_API`` con el valor de :c:data:`PY_VERSION_HEX` " "correspondiente a la versión más baja de Python que soporte su extensión. La " "extensión funcionará sin volver a compilarse con todas las versiones de " "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 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 " "compiling with future Python versions." msgstr "" "En lugar de utilizar directamente la macro ``PY_VERSION_HEX``, se codifica " "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 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)." 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 msgid "" "On Windows, extensions that use the Stable ABI should be linked against " "``python3.dll`` rather than a version-specific library such as ``python39." "dll``." msgstr "" "En Windows, las extensiones que usan la ABI estable deben estar vinculadas " "con ``python3.dll`` en lugar de una biblioteca específica de la versión como " "``python39.dll``." #: ../Doc/c-api/stable.rst:64 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 " "extensions conform to a Stable ABI. The user (or their packaging tools) need " "to ensure that, for example, extensions built with the 3.10+ Limited API are " "not installed for lower versions of Python." msgstr "" "En algunas plataformas, Python buscará y cargará archivos de bibliotecas " "compartidas con el nombre de la etiqueta ``abi3`` (por ejemplo, ``mymodule." "abi3.so``). No comprueba si tales extensiones se ajustan a una ABI estable. " "El usuario (o sus herramientas de empaquetado) necesitan asegurarse que, por " "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 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 " "don't use the C preprocessor." msgstr "" "Todas las funciones de la ABI estable se presentan como funciones en la " "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 msgid "Limited API Scope and Performance" msgstr "Alcance y rendimiento de la API limitada" #: ../Doc/c-api/stable.rst:79 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." 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 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 " "can rely on version-specific implementation details of the list object." msgstr "" "Por ejemplo, mientras :c:func:`PyList_GetItem` está disponible, su variante " "macro “insegura” :c:func:`PyList_GET_ITEM` no lo está. La macro puede ser " "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 msgid "" "Without ``Py_LIMITED_API`` defined, some C API functions are inlined or " "replaced by macros. Defining ``Py_LIMITED_API`` disables this inlining, " "allowing stability as Python's data structures are improved, but possibly " "reducing performance." msgstr "" "Sin definirse ``Py_LIMITED_API``, algunas funciones de la API en C están " "integradas o reemplazadas por macros. Definir ``Py_LIMITED_API`` desactiva " "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 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 " "performance for that Python version, but will limit compatibility. Compiling " "with ``Py_LIMITED_API`` will then yield an extension that can be distributed " "where a version-specific one is not available – for example, for prereleases " "of an upcoming Python version." msgstr "" "Al dejar fuera la definición de ``Py_LIMITED_API``, es posible compilar una " "extensión de la API limitada con una ABI específica de la versión. Esto " "puede mejorar el rendimiento para esa versión de Python, pero limitará la " "compatibilidad. Compilar con ``Py_LIMITED_API`` producirá una extensión que " "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 msgid "Limited API Caveats" msgstr "Advertencias de la API limitada" #: ../Doc/c-api/stable.rst:103 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." 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 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 " "example, consider a function that starts accepting ``NULL`` for an argument. " "In Python 3.9, ``NULL`` now selects a default behavior, but in Python 3.8, " "the argument will be used directly, causing a ``NULL`` dereference and " "crash. A similar argument works for fields of structs." msgstr "" "Un problema contra el que ``Py_LIMITED_API`` no protege es llamar una " "función con argumentos que son inválidos en una versión inferior de Python. " "Por ejemplo, se considera una función que empieza a aceptar ``NULL`` como un " "argumento. Ahora en Python 3.9, ``NULL`` selecciona un comportamiento " "predeterminado, pero en Python 3.8, el argumento se usará directamente, " "causando una desreferencia ``NULL`` y se detendrá. Un argumento similar " "funciona para campos de estructuras." #: ../Doc/c-api/stable.rst:115 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." 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 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." msgstr "" "Por estas razones, recomendamos probar una extensión con *todas* las " "versiones menores de Python que soporte, y preferiblemente compilar con la " "versión *más baja*." #: ../Doc/c-api/stable.rst:121 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 " "few private declarations are exposed for technical reasons (or even " "unintentionally, as bugs)." msgstr "" "También recomendamos revisar la documentación de todas las API usadas para " "verificar si es parte explícitamente de la API limitada. Aunque se defina " "``Py_LIMITED_API``, algunas declaraciones privadas se exponen por razones " "técnicas (o incluso involuntariamente, como errores)." #: ../Doc/c-api/stable.rst:126 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 " "Python 3.12, but it will not necessarily *compile* with Python 3.12. In " "particular, parts of the Limited API may be deprecated and removed, provided " "that the Stable ABI stays stable." msgstr "" "También tome en cuenta que la API limitada no necesariamente es estable: " "compilar con ``Py_LIMITED_API`` con Python 3.8 significa que la extensión se " "ejecutará con Python 3.12, pero no necesariamente *compilará* con Python " "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 msgid "Platform Considerations" msgstr "Consideraciones de la plataforma" #: ../Doc/c-api/stable.rst:138 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" 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 " "compilador. Para los fines de la ABI estable, estos detalles definen una " "“plataforma”. Generalmente dependen del tipo del sistema operativo y de la " "arquitectura del procesador" #: ../Doc/c-api/stable.rst:143 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 " "does not break the Stable ABI. This is the case with Windows and macOS " "releases from ``python.org`` and many third-party distributors." msgstr "" "Es la responsabilidad de cada distribuidor particular de Python de " "asegurarse de que todas las versiones de Python en una plataforma particular " "se compilen de una forma que no rompa la ABI estable. Este es el caso de las " "versiones de Windows y macOS de ``python.org`` y muchos distribuidores de " "terceros." #: ../Doc/c-api/stable.rst:153 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:" msgstr "Actualmente, la API limitada incluye los siguientes elementos:"