From 03dc05c7646063b3854b607cc6a6b12df6f49d6b Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Tue, 19 May 2020 00:30:51 +0200 Subject: [PATCH] Traducido c-api/typeobj --- c-api/typeobj.po | 1625 ++++++++++++++++++++++++++++++++++++---------- dict | 27 + 2 files changed, 1309 insertions(+), 343 deletions(-) diff --git a/c-api/typeobj.po b/c-api/typeobj.po index 678393fa88..de76a4b86b 100644 --- a/c-api/typeobj.po +++ b/c-api/typeobj.po @@ -6,23 +6,25 @@ # Check https://github.com/PyCampES/python-docs-es/blob/3.8/TRANSLATORS to # get the list of volunteers # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2020-05-19 00:16+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: Cristián Maureira-Fredes \n" +"Language: es\n" +"X-Generator: Poedit 2.3\n" #: ../Doc/c-api/typeobj.rst:6 msgid "Type Objects" -msgstr "" +msgstr "Objetos Tipo" #: ../Doc/c-api/typeobj.rst:8 msgid "" @@ -34,6 +36,14 @@ msgid "" "how objects behave, so they are very important to the interpreter itself and " "to any extension module that implements new types." msgstr "" +"Quizás una de las estructuras más importantes del sistema de objetos Python " +"es la estructura que define un nuevo tipo: la estructura :c:type:" +"`PyTypeObject`. Los objetos tipo se pueden manejar utilizando cualquiera de " +"las funciones :c:func:`PyObject_\\*` o :c:func:`PyType_\\*`, pero no ofrecen " +"mucho que sea interesante para la mayoría de las aplicaciones de Python. " +"Estos objetos son fundamentales para el comportamiento de los objetos, por " +"lo que son muy importantes para el propio intérprete y para cualquier módulo " +"de extensión que implemente nuevos tipos." #: ../Doc/c-api/typeobj.rst:16 msgid "" @@ -44,6 +54,12 @@ msgid "" "detail in this section. The fields will be described in the order in which " "they occur in the structure." msgstr "" +"Los objetos de tipo son bastante grandes en comparación con la mayoría de " +"los tipos estándar. La razón del tamaño es que cada objeto de tipo almacena " +"una gran cantidad de valores, principalmente punteros de función C, cada uno " +"de los cuales implementa una pequeña parte de la funcionalidad del tipo. Los " +"campos del objeto tipo se examinan en detalle en esta sección. Los campos se " +"describirán en el orden en que aparecen en la estructura." #: ../Doc/c-api/typeobj.rst:23 msgid "" @@ -51,59 +67,62 @@ msgid "" "section provides at-a-glance insight into the meaning and use of :c:type:" "`PyTypeObject`." msgstr "" +"Además de la siguiente referencia rápida, la sección :ref:`typedef-examples` " +"proporciona una visión rápida del significado y uso de :c:type:" +"`PyTypeObject`." #: ../Doc/c-api/typeobj.rst:29 msgid "Quick Reference" -msgstr "" +msgstr "Referencia rápida" #: ../Doc/c-api/typeobj.rst:34 msgid "\"tp slots\"" -msgstr "" +msgstr "\"ranuras *tp*\" (*tp slots*)" #: ../Doc/c-api/typeobj.rst:40 msgid "PyTypeObject Slot [#slots]_" -msgstr "" +msgstr "Ranura ``PyTypeObject`` [#slots]_" #: ../Doc/c-api/typeobj.rst:40 ../Doc/c-api/typeobj.rst:200 msgid ":ref:`Type `" -msgstr "" +msgstr ":ref:`Type `" #: ../Doc/c-api/typeobj.rst:40 msgid "special methods/attrs" -msgstr "" +msgstr "métodos/atributos especiales" #: ../Doc/c-api/typeobj.rst:40 msgid "Info [#cols]_" -msgstr "" +msgstr "Información [#cols]_" #: ../Doc/c-api/typeobj.rst:42 msgid "O" -msgstr "" +msgstr "O" #: ../Doc/c-api/typeobj.rst:42 msgid "T" -msgstr "" +msgstr "T" #: ../Doc/c-api/typeobj.rst:42 msgid "D" -msgstr "" +msgstr "D" #: ../Doc/c-api/typeobj.rst:42 msgid "I" -msgstr "" +msgstr "I" #: ../Doc/c-api/typeobj.rst:44 msgid " :c:member:`~PyTypeObject.tp_name`" -msgstr "" +msgstr " :c:member:`~PyTypeObject.tp_name`" #: ../Doc/c-api/typeobj.rst ../Doc/c-api/typeobj.rst:44 #: ../Doc/c-api/typeobj.rst:86 msgid "const char *" -msgstr "" +msgstr "const char *" #: ../Doc/c-api/typeobj.rst:44 msgid "__name__" -msgstr "" +msgstr "__name__" #: ../Doc/c-api/typeobj.rst:44 ../Doc/c-api/typeobj.rst:46 #: ../Doc/c-api/typeobj.rst:48 ../Doc/c-api/typeobj.rst:50 @@ -122,299 +141,299 @@ msgstr "" #: ../Doc/c-api/typeobj.rst:128 ../Doc/c-api/typeobj.rst:130 #: ../Doc/c-api/typeobj.rst:146 msgid "X" -msgstr "" +msgstr "X" #: ../Doc/c-api/typeobj.rst:46 msgid ":c:member:`~PyTypeObject.tp_basicsize`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_basicsize`" #: ../Doc/c-api/typeobj.rst ../Doc/c-api/typeobj.rst:46 #: ../Doc/c-api/typeobj.rst:48 ../Doc/c-api/typeobj.rst:52 #: ../Doc/c-api/typeobj.rst:99 ../Doc/c-api/typeobj.rst:120 #: ../Doc/c-api/typeobj.rst:413 msgid "Py_ssize_t" -msgstr "" +msgstr "Py_ssize_t" #: ../Doc/c-api/typeobj.rst:48 msgid ":c:member:`~PyTypeObject.tp_itemsize`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_itemsize`" #: ../Doc/c-api/typeobj.rst:50 msgid ":c:member:`~PyTypeObject.tp_dealloc`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_dealloc`" #: ../Doc/c-api/typeobj.rst:50 ../Doc/c-api/typeobj.rst:142 #: ../Doc/c-api/typeobj.rst:146 ../Doc/c-api/typeobj.rst:343 msgid ":c:type:`destructor`" -msgstr "" +msgstr ":c:type:`destructor`" #: ../Doc/c-api/typeobj.rst:52 msgid ":c:member:`~PyTypeObject.tp_vectorcall_offset`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_vectorcall_offset`" #: ../Doc/c-api/typeobj.rst:52 ../Doc/c-api/typeobj.rst:84 #: ../Doc/c-api/typeobj.rst:99 ../Doc/c-api/typeobj.rst:113 #: ../Doc/c-api/typeobj.rst:120 ../Doc/c-api/typeobj.rst:124 #: ../Doc/c-api/typeobj.rst:126 ../Doc/c-api/typeobj.rst:128 msgid "?" -msgstr "" +msgstr "?" #: ../Doc/c-api/typeobj.rst:54 msgid "(:c:member:`~PyTypeObject.tp_getattr`)" -msgstr "" +msgstr "(:c:member:`~PyTypeObject.tp_getattr`)" #: ../Doc/c-api/typeobj.rst:54 ../Doc/c-api/typeobj.rst:367 msgid ":c:type:`getattrfunc`" -msgstr "" +msgstr ":c:type:`getattrfunc`" #: ../Doc/c-api/typeobj.rst:54 ../Doc/c-api/typeobj.rst:76 msgid "__getattribute__, __getattr__" -msgstr "" +msgstr "__getattribute__, __getattr__" #: ../Doc/c-api/typeobj.rst:54 ../Doc/c-api/typeobj.rst:57 #: ../Doc/c-api/typeobj.rst:70 ../Doc/c-api/typeobj.rst:76 #: ../Doc/c-api/typeobj.rst:79 ../Doc/c-api/typeobj.rst:88 #: ../Doc/c-api/typeobj.rst:90 ../Doc/c-api/typeobj.rst:92 msgid "G" -msgstr "" +msgstr "G" #: ../Doc/c-api/typeobj.rst:57 msgid "(:c:member:`~PyTypeObject.tp_setattr`)" -msgstr "" +msgstr "(:c:member:`~PyTypeObject.tp_setattr`)" #: ../Doc/c-api/typeobj.rst:57 ../Doc/c-api/typeobj.rst:372 msgid ":c:type:`setattrfunc`" -msgstr "" +msgstr ":c:type:`setattrfunc`" #: ../Doc/c-api/typeobj.rst:57 ../Doc/c-api/typeobj.rst:79 msgid "__setattr__, __delattr__" -msgstr "" +msgstr "__setattr__, __delattr__" #: ../Doc/c-api/typeobj.rst:60 msgid ":c:member:`~PyTypeObject.tp_as_async`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_as_async`" #: ../Doc/c-api/typeobj.rst:60 msgid ":c:type:`PyAsyncMethods` *" -msgstr "" +msgstr ":c:type:`PyAsyncMethods` *" #: ../Doc/c-api/typeobj.rst:60 ../Doc/c-api/typeobj.rst:64 #: ../Doc/c-api/typeobj.rst:66 ../Doc/c-api/typeobj.rst:68 msgid ":ref:`sub-slots`" -msgstr "" +msgstr ":ref:`sub-slots`" #: ../Doc/c-api/typeobj.rst:60 ../Doc/c-api/typeobj.rst:64 #: ../Doc/c-api/typeobj.rst:66 ../Doc/c-api/typeobj.rst:68 #: ../Doc/c-api/typeobj.rst:82 msgid "%" -msgstr "" +msgstr "%" #: ../Doc/c-api/typeobj.rst:62 msgid ":c:member:`~PyTypeObject.tp_repr`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_repr`" #: ../Doc/c-api/typeobj.rst:62 ../Doc/c-api/typeobj.rst:74 #: ../Doc/c-api/typeobj.rst:365 msgid ":c:type:`reprfunc`" -msgstr "" +msgstr ":c:type:`reprfunc`" #: ../Doc/c-api/typeobj.rst:62 msgid "__repr__" -msgstr "" +msgstr "__repr__" #: ../Doc/c-api/typeobj.rst:64 msgid ":c:member:`~PyTypeObject.tp_as_number`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_as_number`" #: ../Doc/c-api/typeobj.rst:64 msgid ":c:type:`PyNumberMethods` *" -msgstr "" +msgstr ":c:type:`PyNumberMethods` *" #: ../Doc/c-api/typeobj.rst:66 msgid ":c:member:`~PyTypeObject.tp_as_sequence`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_as_sequence`" #: ../Doc/c-api/typeobj.rst:66 msgid ":c:type:`PySequenceMethods` *" -msgstr "" +msgstr ":c:type:`PySequenceMethods` *" #: ../Doc/c-api/typeobj.rst:68 msgid ":c:member:`~PyTypeObject.tp_as_mapping`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_as_mapping`" #: ../Doc/c-api/typeobj.rst:68 msgid ":c:type:`PyMappingMethods` *" -msgstr "" +msgstr ":c:type:`PyMappingMethods` *" #: ../Doc/c-api/typeobj.rst:70 msgid ":c:member:`~PyTypeObject.tp_hash`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_hash`" #: ../Doc/c-api/typeobj.rst:70 ../Doc/c-api/typeobj.rst:401 msgid ":c:type:`hashfunc`" -msgstr "" +msgstr ":c:type:`hashfunc`" #: ../Doc/c-api/typeobj.rst:70 msgid "__hash__" -msgstr "" +msgstr "__hash__" #: ../Doc/c-api/typeobj.rst:72 msgid ":c:member:`~PyTypeObject.tp_call`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_call`" #: ../Doc/c-api/typeobj.rst:72 ../Doc/c-api/typeobj.rst:234 #: ../Doc/c-api/typeobj.rst:237 ../Doc/c-api/typeobj.rst:437 msgid ":c:type:`ternaryfunc`" -msgstr "" +msgstr ":c:type:`ternaryfunc`" #: ../Doc/c-api/typeobj.rst:72 msgid "__call__" -msgstr "" +msgstr "__call__" #: ../Doc/c-api/typeobj.rst:74 msgid ":c:member:`~PyTypeObject.tp_str`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_str`" #: ../Doc/c-api/typeobj.rst:74 msgid "__str__" -msgstr "" +msgstr "__str__" #: ../Doc/c-api/typeobj.rst:76 msgid ":c:member:`~PyTypeObject.tp_getattro`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_getattro`" #: ../Doc/c-api/typeobj.rst:76 ../Doc/c-api/typeobj.rst:378 msgid ":c:type:`getattrofunc`" -msgstr "" +msgstr ":c:type:`getattrofunc`" #: ../Doc/c-api/typeobj.rst:79 msgid ":c:member:`~PyTypeObject.tp_setattro`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_setattro`" #: ../Doc/c-api/typeobj.rst:79 ../Doc/c-api/typeobj.rst:383 msgid ":c:type:`setattrofunc`" -msgstr "" +msgstr ":c:type:`setattrofunc`" #: ../Doc/c-api/typeobj.rst:82 msgid ":c:member:`~PyTypeObject.tp_as_buffer`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_as_buffer`" #: ../Doc/c-api/typeobj.rst:82 msgid ":c:type:`PyBufferProcs` *" -msgstr "" +msgstr ":c:type:`PyBufferProcs` *" #: ../Doc/c-api/typeobj.rst:84 msgid ":c:member:`~PyTypeObject.tp_flags`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_flags`" #: ../Doc/c-api/typeobj.rst:84 msgid "unsigned long" -msgstr "" +msgstr "unsigned long" #: ../Doc/c-api/typeobj.rst:86 msgid ":c:member:`~PyTypeObject.tp_doc`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_doc`" #: ../Doc/c-api/typeobj.rst:86 msgid "__doc__" -msgstr "" +msgstr "__doc__" #: ../Doc/c-api/typeobj.rst:88 msgid ":c:member:`~PyTypeObject.tp_traverse`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_traverse`" #: ../Doc/c-api/typeobj.rst:88 ../Doc/c-api/typeobj.rst:347 msgid ":c:type:`traverseproc`" -msgstr "" +msgstr ":c:type:`traverseproc`" #: ../Doc/c-api/typeobj.rst:90 msgid ":c:member:`~PyTypeObject.tp_clear`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_clear`" #: ../Doc/c-api/typeobj.rst:90 ../Doc/c-api/typeobj.rst:130 #: ../Doc/c-api/typeobj.rst:245 ../Doc/c-api/typeobj.rst:426 msgid ":c:type:`inquiry`" -msgstr "" +msgstr ":c:type:`inquiry`" #: ../Doc/c-api/typeobj.rst:92 msgid ":c:member:`~PyTypeObject.tp_richcompare`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_richcompare`" #: ../Doc/c-api/typeobj.rst:92 ../Doc/c-api/typeobj.rst:403 msgid ":c:type:`richcmpfunc`" -msgstr "" +msgstr ":c:type:`richcmpfunc`" #: ../Doc/c-api/typeobj.rst:92 msgid "__lt__, __le__, __eq__, __ne__, __gt__, __ge__" -msgstr "" +msgstr "__lt__, __le__, __eq__, __ne__, __gt__, __ge__" #: ../Doc/c-api/typeobj.rst:99 msgid ":c:member:`~PyTypeObject.tp_weaklistoffset`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_weaklistoffset`" #: ../Doc/c-api/typeobj.rst:101 msgid ":c:member:`~PyTypeObject.tp_iter`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_iter`" #: ../Doc/c-api/typeobj.rst:101 ../Doc/c-api/typeobj.rst:409 msgid ":c:type:`getiterfunc`" -msgstr "" +msgstr ":c:type:`getiterfunc`" #: ../Doc/c-api/typeobj.rst:101 msgid "__iter__" -msgstr "" +msgstr "__iter__" #: ../Doc/c-api/typeobj.rst:103 msgid ":c:member:`~PyTypeObject.tp_iternext`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_iternext`" #: ../Doc/c-api/typeobj.rst:103 ../Doc/c-api/typeobj.rst:411 msgid ":c:type:`iternextfunc`" -msgstr "" +msgstr ":c:type:`iternextfunc`" #: ../Doc/c-api/typeobj.rst:103 msgid "__next__" -msgstr "" +msgstr "__next__" #: ../Doc/c-api/typeobj.rst:105 msgid ":c:member:`~PyTypeObject.tp_methods`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_methods`" #: ../Doc/c-api/typeobj.rst:105 msgid ":c:type:`PyMethodDef` []" -msgstr "" +msgstr ":c:type:`PyMethodDef` []" #: ../Doc/c-api/typeobj.rst:107 msgid ":c:member:`~PyTypeObject.tp_members`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_members`" #: ../Doc/c-api/typeobj.rst:107 msgid ":c:type:`PyMemberDef` []" -msgstr "" +msgstr ":c:type:`PyMemberDef` []" #: ../Doc/c-api/typeobj.rst:109 msgid ":c:member:`~PyTypeObject.tp_getset`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_getset`" #: ../Doc/c-api/typeobj.rst:109 msgid ":c:type:`PyGetSetDef` []" -msgstr "" +msgstr ":c:type:`PyGetSetDef` []" #: ../Doc/c-api/typeobj.rst:111 msgid ":c:member:`~PyTypeObject.tp_base`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_base`" #: ../Doc/c-api/typeobj.rst ../Doc/c-api/typeobj.rst:111 msgid ":c:type:`PyTypeObject` *" -msgstr "" +msgstr ":c:type:`PyTypeObject` *" #: ../Doc/c-api/typeobj.rst:111 msgid "__base__" -msgstr "" +msgstr "__base__" #: ../Doc/c-api/typeobj.rst:113 msgid ":c:member:`~PyTypeObject.tp_dict`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_dict`" #: ../Doc/c-api/typeobj.rst ../Doc/c-api/typeobj.rst:113 #: ../Doc/c-api/typeobj.rst:132 ../Doc/c-api/typeobj.rst:134 @@ -428,165 +447,167 @@ msgstr "" #: ../Doc/c-api/typeobj.rst:428 ../Doc/c-api/typeobj.rst:432 #: ../Doc/c-api/typeobj.rst:437 ../Doc/c-api/typeobj.rst:443 msgid ":c:type:`PyObject` *" -msgstr "" +msgstr ":c:type:`PyObject` *" #: ../Doc/c-api/typeobj.rst:113 msgid "__dict__" -msgstr "" +msgstr "__dict__" #: ../Doc/c-api/typeobj.rst:115 msgid ":c:member:`~PyTypeObject.tp_descr_get`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_descr_get`" #: ../Doc/c-api/typeobj.rst:115 ../Doc/c-api/typeobj.rst:389 msgid ":c:type:`descrgetfunc`" -msgstr "" +msgstr ":c:type:`descrgetfunc`" #: ../Doc/c-api/typeobj.rst:115 msgid "__get__" -msgstr "" +msgstr "__get__" #: ../Doc/c-api/typeobj.rst:117 msgid ":c:member:`~PyTypeObject.tp_descr_set`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_descr_set`" #: ../Doc/c-api/typeobj.rst:117 ../Doc/c-api/typeobj.rst:395 msgid ":c:type:`descrsetfunc`" -msgstr "" +msgstr ":c:type:`descrsetfunc`" #: ../Doc/c-api/typeobj.rst:117 msgid "__set__, __delete__" -msgstr "" +msgstr "__set__, __delete__" #: ../Doc/c-api/typeobj.rst:120 msgid ":c:member:`~PyTypeObject.tp_dictoffset`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_dictoffset`" #: ../Doc/c-api/typeobj.rst:122 msgid ":c:member:`~PyTypeObject.tp_init`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_init`" #: ../Doc/c-api/typeobj.rst:122 ../Doc/c-api/typeobj.rst:359 msgid ":c:type:`initproc`" -msgstr "" +msgstr ":c:type:`initproc`" #: ../Doc/c-api/typeobj.rst:122 msgid "__init__" -msgstr "" +msgstr "__init__" #: ../Doc/c-api/typeobj.rst:124 msgid ":c:member:`~PyTypeObject.tp_alloc`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_alloc`" #: ../Doc/c-api/typeobj.rst:124 ../Doc/c-api/typeobj.rst:338 msgid ":c:type:`allocfunc`" -msgstr "" +msgstr ":c:type:`allocfunc`" #: ../Doc/c-api/typeobj.rst:126 msgid ":c:member:`~PyTypeObject.tp_new`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_new`" #: ../Doc/c-api/typeobj.rst:126 ../Doc/c-api/typeobj.rst:353 msgid ":c:type:`newfunc`" -msgstr "" +msgstr ":c:type:`newfunc`" #: ../Doc/c-api/typeobj.rst:126 msgid "__new__" -msgstr "" +msgstr "__new__" #: ../Doc/c-api/typeobj.rst:128 msgid ":c:member:`~PyTypeObject.tp_free`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_free`" #: ../Doc/c-api/typeobj.rst:128 ../Doc/c-api/typeobj.rst:345 msgid ":c:type:`freefunc`" -msgstr "" +msgstr ":c:type:`freefunc`" #: ../Doc/c-api/typeobj.rst:130 msgid ":c:member:`~PyTypeObject.tp_is_gc`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_is_gc`" #: ../Doc/c-api/typeobj.rst:132 msgid "<:c:member:`~PyTypeObject.tp_bases`>" -msgstr "" +msgstr "<:c:member:`~PyTypeObject.tp_bases`>" #: ../Doc/c-api/typeobj.rst:132 msgid "__bases__" -msgstr "" +msgstr "__bases__" #: ../Doc/c-api/typeobj.rst:132 ../Doc/c-api/typeobj.rst:134 msgid "~" -msgstr "" +msgstr "~" #: ../Doc/c-api/typeobj.rst:134 msgid "<:c:member:`~PyTypeObject.tp_mro`>" -msgstr "" +msgstr "<:c:member:`~PyTypeObject.tp_mro`>" #: ../Doc/c-api/typeobj.rst:134 msgid "__mro__" -msgstr "" +msgstr "__mro__" #: ../Doc/c-api/typeobj.rst:136 msgid "[:c:member:`~PyTypeObject.tp_cache`]" -msgstr "" +msgstr "[:c:member:`~PyTypeObject.tp_cache`]" #: ../Doc/c-api/typeobj.rst:138 msgid "[:c:member:`~PyTypeObject.tp_subclasses`]" -msgstr "" +msgstr "[:c:member:`~PyTypeObject.tp_subclasses`]" #: ../Doc/c-api/typeobj.rst:138 msgid "__subclasses__" -msgstr "" +msgstr "__subclasses__" #: ../Doc/c-api/typeobj.rst:140 msgid "[:c:member:`~PyTypeObject.tp_weaklist`]" -msgstr "" +msgstr "[:c:member:`~PyTypeObject.tp_weaklist`]" #: ../Doc/c-api/typeobj.rst:142 msgid "(:c:member:`~PyTypeObject.tp_del`)" -msgstr "" +msgstr "(:c:member:`~PyTypeObject.tp_del`)" #: ../Doc/c-api/typeobj.rst:144 msgid "[:c:member:`~PyTypeObject.tp_version_tag`]" -msgstr "" +msgstr "[:c:member:`~PyTypeObject.tp_version_tag`]" #: ../Doc/c-api/typeobj.rst:144 msgid "unsigned int" -msgstr "" +msgstr "unsigned int" #: ../Doc/c-api/typeobj.rst:146 msgid ":c:member:`~PyTypeObject.tp_finalize`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_finalize`" #: ../Doc/c-api/typeobj.rst:146 msgid "__del__" -msgstr "" +msgstr "__del__" #: ../Doc/c-api/typeobj.rst:149 msgid "" "If :const:`COUNT_ALLOCS` is defined then the following (internal-only) " "fields exist as well:" msgstr "" +"Si :const:`COUNT_ALLOCS` está definido, entonces también existen los " +"siguientes campos (solo internos):" #: ../Doc/c-api/typeobj.rst:152 msgid ":c:member:`~PyTypeObject.tp_allocs`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_allocs`" #: ../Doc/c-api/typeobj.rst:153 msgid ":c:member:`~PyTypeObject.tp_frees`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_frees`" #: ../Doc/c-api/typeobj.rst:154 msgid ":c:member:`~PyTypeObject.tp_maxalloc`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_maxalloc`" #: ../Doc/c-api/typeobj.rst:155 msgid ":c:member:`~PyTypeObject.tp_prev`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_prev`" #: ../Doc/c-api/typeobj.rst:156 msgid ":c:member:`~PyTypeObject.tp_next`" -msgstr "" +msgstr ":c:member:`~PyTypeObject.tp_next`" #: ../Doc/c-api/typeobj.rst:159 msgid "" @@ -595,48 +616,55 @@ msgid "" "are for internal use only. \"\" (as a prefix) means the field is required " "(must be non-``NULL``)." msgstr "" +"Un nombre de ranura entre paréntesis indica que está (efectivamente) en " +"desuso. Los nombres entre paréntesis angulares deben tratarse como de solo " +"lectura. Los nombres entre corchetes son solo para uso interno. \"" +"\" (como prefijo) significa que el campo es obligatorio (no debe ser " +"``NULL``)." #: ../Doc/c-api/typeobj.rst:163 msgid "Columns:" -msgstr "" +msgstr "Columnas:" #: ../Doc/c-api/typeobj.rst:165 msgid "**\"O\"**: set on :c:type:`PyBaseObject_Type`" -msgstr "" +msgstr "**\"O\"**: establecido en :c:type:`PyBaseObject_Type`" #: ../Doc/c-api/typeobj.rst:167 msgid "**\"T\"**: set on :c:type:`PyType_Type`" -msgstr "" +msgstr "**\"T\"**: establecido en :c:type:`PyType_Type`" #: ../Doc/c-api/typeobj.rst:169 msgid "**\"D\"**: default (if slot is set to ``NULL``)" -msgstr "" +msgstr "**\"D\"**: por defecto (si la ranura está establecida como ``NULL``)" #: ../Doc/c-api/typeobj.rst:179 msgid "**\"I\"**: inheritance" -msgstr "" +msgstr "**\"I\"**: herencia" #: ../Doc/c-api/typeobj.rst:188 msgid "" "Note that some slots are effectively inherited through the normal attribute " "lookup chain." msgstr "" +"Tenga en cuenta que algunos espacios se heredan efectivamente a través de la " +"cadena de búsqueda de atributos normal." #: ../Doc/c-api/typeobj.rst:194 msgid "sub-slots" -msgstr "" +msgstr "sub-ranuras (*sub-slots*)" #: ../Doc/c-api/typeobj.rst:200 msgid "Slot" -msgstr "" +msgstr "Ranuras (*Slot*)" #: ../Doc/c-api/typeobj.rst:200 msgid "special methods" -msgstr "" +msgstr "métodos especiales" #: ../Doc/c-api/typeobj.rst:203 msgid ":c:member:`~PyAsyncMethods.am_await`" -msgstr "" +msgstr ":c:member:`~PyAsyncMethods.am_await`" #: ../Doc/c-api/typeobj.rst:203 ../Doc/c-api/typeobj.rst:205 #: ../Doc/c-api/typeobj.rst:207 ../Doc/c-api/typeobj.rst:239 @@ -645,31 +673,31 @@ msgstr "" #: ../Doc/c-api/typeobj.rst:278 ../Doc/c-api/typeobj.rst:288 #: ../Doc/c-api/typeobj.rst:428 msgid ":c:type:`unaryfunc`" -msgstr "" +msgstr ":c:type:`unaryfunc`" #: ../Doc/c-api/typeobj.rst:203 msgid "__await__" -msgstr "" +msgstr "__await__" #: ../Doc/c-api/typeobj.rst:205 msgid ":c:member:`~PyAsyncMethods.am_aiter`" -msgstr "" +msgstr ":c:member:`~PyAsyncMethods.am_aiter`" #: ../Doc/c-api/typeobj.rst:205 msgid "__aiter__" -msgstr "" +msgstr "__aiter__" #: ../Doc/c-api/typeobj.rst:207 msgid ":c:member:`~PyAsyncMethods.am_anext`" -msgstr "" +msgstr ":c:member:`~PyAsyncMethods.am_anext`" #: ../Doc/c-api/typeobj.rst:207 msgid "__anext__" -msgstr "" +msgstr "__anext__" #: ../Doc/c-api/typeobj.rst:211 msgid ":c:member:`~PyNumberMethods.nb_add`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_add`" #: ../Doc/c-api/typeobj.rst:211 ../Doc/c-api/typeobj.rst:214 #: ../Doc/c-api/typeobj.rst:216 ../Doc/c-api/typeobj.rst:219 @@ -687,420 +715,420 @@ msgstr "" #: ../Doc/c-api/typeobj.rst:308 ../Doc/c-api/typeobj.rst:319 #: ../Doc/c-api/typeobj.rst:432 msgid ":c:type:`binaryfunc`" -msgstr "" +msgstr ":c:type:`binaryfunc`" #: ../Doc/c-api/typeobj.rst:211 msgid "__add__ __radd__" -msgstr "" +msgstr "__add__ __radd__" #: ../Doc/c-api/typeobj.rst:214 msgid ":c:member:`~PyNumberMethods.nb_inplace_add`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_inplace_add`" #: ../Doc/c-api/typeobj.rst:214 ../Doc/c-api/typeobj.rst:319 msgid "__iadd__" -msgstr "" +msgstr "__iadd__" #: ../Doc/c-api/typeobj.rst:216 msgid ":c:member:`~PyNumberMethods.nb_subtract`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_subtract`" #: ../Doc/c-api/typeobj.rst:216 msgid "__sub__ __rsub__" -msgstr "" +msgstr "__sub__ __rsub__" #: ../Doc/c-api/typeobj.rst:219 msgid ":c:member:`~PyNumberMethods.nb_inplace_subtract`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_inplace_subtract`" #: ../Doc/c-api/typeobj.rst:219 msgid "__sub__" -msgstr "" +msgstr "__sub__" #: ../Doc/c-api/typeobj.rst:221 msgid ":c:member:`~PyNumberMethods.nb_multiply`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_multiply`" #: ../Doc/c-api/typeobj.rst:221 msgid "__mul__ __rmul__" -msgstr "" +msgstr "__mul__ __rmul__" #: ../Doc/c-api/typeobj.rst:224 msgid ":c:member:`~PyNumberMethods.nb_inplace_multiply`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_inplace_multiply`" #: ../Doc/c-api/typeobj.rst:224 ../Doc/c-api/typeobj.rst:310 msgid "__mul__" -msgstr "" +msgstr "__mul__" #: ../Doc/c-api/typeobj.rst:226 msgid ":c:member:`~PyNumberMethods.nb_remainder`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_remainder`" #: ../Doc/c-api/typeobj.rst:226 msgid "__mod__ __rmod__" -msgstr "" +msgstr "__mod__ __rmod__" #: ../Doc/c-api/typeobj.rst:229 msgid ":c:member:`~PyNumberMethods.nb_inplace_remainder`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_inplace_remainder`" #: ../Doc/c-api/typeobj.rst:229 msgid "__mod__" -msgstr "" +msgstr "__mod__" #: ../Doc/c-api/typeobj.rst:231 msgid ":c:member:`~PyNumberMethods.nb_divmod`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_divmod`" #: ../Doc/c-api/typeobj.rst:231 msgid "__divmod__ __rdivmod__" -msgstr "" +msgstr "__divmod__ __rdivmod__" #: ../Doc/c-api/typeobj.rst:234 msgid ":c:member:`~PyNumberMethods.nb_power`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_power`" #: ../Doc/c-api/typeobj.rst:234 msgid "__pow__ __rpow__" -msgstr "" +msgstr "__pow__ __rpow__" #: ../Doc/c-api/typeobj.rst:237 msgid ":c:member:`~PyNumberMethods.nb_inplace_power`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_inplace_power`" #: ../Doc/c-api/typeobj.rst:237 msgid "__pow__" -msgstr "" +msgstr "__pow__" #: ../Doc/c-api/typeobj.rst:239 msgid ":c:member:`~PyNumberMethods.nb_negative`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_negative`" #: ../Doc/c-api/typeobj.rst:239 msgid "__neg__" -msgstr "" +msgstr "__neg__" #: ../Doc/c-api/typeobj.rst:241 msgid ":c:member:`~PyNumberMethods.nb_positive`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_positive`" #: ../Doc/c-api/typeobj.rst:241 msgid "__pos__" -msgstr "" +msgstr "__pos__" #: ../Doc/c-api/typeobj.rst:243 msgid ":c:member:`~PyNumberMethods.nb_absolute`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_absolute`" #: ../Doc/c-api/typeobj.rst:243 msgid "__abs__" -msgstr "" +msgstr "__abs__" #: ../Doc/c-api/typeobj.rst:245 msgid ":c:member:`~PyNumberMethods.nb_bool`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_bool`" #: ../Doc/c-api/typeobj.rst:245 msgid "__bool__" -msgstr "" +msgstr "__bool__" #: ../Doc/c-api/typeobj.rst:247 msgid ":c:member:`~PyNumberMethods.nb_invert`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_invert`" #: ../Doc/c-api/typeobj.rst:247 msgid "__invert__" -msgstr "" +msgstr "__invert__" #: ../Doc/c-api/typeobj.rst:249 msgid ":c:member:`~PyNumberMethods.nb_lshift`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_lshift`" #: ../Doc/c-api/typeobj.rst:249 msgid "__lshift__ __rlshift__" -msgstr "" +msgstr "__lshift__ __rlshift__" #: ../Doc/c-api/typeobj.rst:252 msgid ":c:member:`~PyNumberMethods.nb_inplace_lshift`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_inplace_lshift`" #: ../Doc/c-api/typeobj.rst:252 msgid "__lshift__" -msgstr "" +msgstr "__lshift__" #: ../Doc/c-api/typeobj.rst:254 msgid ":c:member:`~PyNumberMethods.nb_rshift`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_rshift`" #: ../Doc/c-api/typeobj.rst:254 msgid "__rshift__ __rrshift__" -msgstr "" +msgstr "__rshift__ __rrshift__" #: ../Doc/c-api/typeobj.rst:257 msgid ":c:member:`~PyNumberMethods.nb_inplace_rshift`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_inplace_rshift`" #: ../Doc/c-api/typeobj.rst:257 msgid "__rshift__" -msgstr "" +msgstr "__rshift__" #: ../Doc/c-api/typeobj.rst:259 msgid ":c:member:`~PyNumberMethods.nb_and`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_and`" #: ../Doc/c-api/typeobj.rst:259 msgid "__and__ __rand__" -msgstr "" +msgstr "__and__ __rand__" #: ../Doc/c-api/typeobj.rst:262 msgid ":c:member:`~PyNumberMethods.nb_inplace_and`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_inplace_and`" #: ../Doc/c-api/typeobj.rst:262 msgid "__and__" -msgstr "" +msgstr "__and__" #: ../Doc/c-api/typeobj.rst:264 msgid ":c:member:`~PyNumberMethods.nb_xor`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_xor`" #: ../Doc/c-api/typeobj.rst:264 msgid "__xor__ __rxor__" -msgstr "" +msgstr "__xor__ __rxor__" #: ../Doc/c-api/typeobj.rst:267 msgid ":c:member:`~PyNumberMethods.nb_inplace_xor`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_inplace_xor`" #: ../Doc/c-api/typeobj.rst:267 msgid "__xor__" -msgstr "" +msgstr "__xor__" #: ../Doc/c-api/typeobj.rst:269 msgid ":c:member:`~PyNumberMethods.nb_or`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_or`" #: ../Doc/c-api/typeobj.rst:269 msgid "__or__ __ror__" -msgstr "" +msgstr "__or__ __ror__" #: ../Doc/c-api/typeobj.rst:272 msgid ":c:member:`~PyNumberMethods.nb_inplace_or`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_inplace_or`" #: ../Doc/c-api/typeobj.rst:272 msgid "__or__" -msgstr "" +msgstr "__or__" #: ../Doc/c-api/typeobj.rst:274 msgid ":c:member:`~PyNumberMethods.nb_int`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_int`" #: ../Doc/c-api/typeobj.rst:274 msgid "__int__" -msgstr "" +msgstr "__int__" #: ../Doc/c-api/typeobj.rst:276 msgid ":c:member:`~PyNumberMethods.nb_reserved`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_reserved`" #: ../Doc/c-api/typeobj.rst ../Doc/c-api/typeobj.rst:276 #: ../Doc/c-api/typeobj.rst:343 ../Doc/c-api/typeobj.rst:345 #: ../Doc/c-api/typeobj.rst:426 msgid "void *" -msgstr "" +msgstr "void *" #: ../Doc/c-api/typeobj.rst:278 msgid ":c:member:`~PyNumberMethods.nb_float`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_float`" #: ../Doc/c-api/typeobj.rst:278 msgid "__float__" -msgstr "" +msgstr "__float__" #: ../Doc/c-api/typeobj.rst:280 msgid ":c:member:`~PyNumberMethods.nb_floor_divide`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_floor_divide`" #: ../Doc/c-api/typeobj.rst:280 ../Doc/c-api/typeobj.rst:282 msgid "__floordiv__" -msgstr "" +msgstr "__floordiv__" #: ../Doc/c-api/typeobj.rst:282 msgid ":c:member:`~PyNumberMethods.nb_inplace_floor_divide`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_inplace_floor_divide`" #: ../Doc/c-api/typeobj.rst:284 msgid ":c:member:`~PyNumberMethods.nb_true_divide`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_true_divide`" #: ../Doc/c-api/typeobj.rst:284 ../Doc/c-api/typeobj.rst:286 msgid "__truediv__" -msgstr "" +msgstr "__truediv__" #: ../Doc/c-api/typeobj.rst:286 msgid ":c:member:`~PyNumberMethods.nb_inplace_true_divide`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_inplace_true_divide`" #: ../Doc/c-api/typeobj.rst:288 msgid ":c:member:`~PyNumberMethods.nb_index`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_index`" #: ../Doc/c-api/typeobj.rst:288 msgid "__index__" -msgstr "" +msgstr "__index__" #: ../Doc/c-api/typeobj.rst:290 msgid ":c:member:`~PyNumberMethods.nb_matrix_multiply`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_matrix_multiply`" #: ../Doc/c-api/typeobj.rst:290 msgid "__matmul__ __rmatmul__" -msgstr "" +msgstr "__matmul__ __rmatmul__" #: ../Doc/c-api/typeobj.rst:293 msgid ":c:member:`~PyNumberMethods.nb_inplace_matrix_multiply`" -msgstr "" +msgstr ":c:member:`~PyNumberMethods.nb_inplace_matrix_multiply`" #: ../Doc/c-api/typeobj.rst:293 msgid "__matmul__" -msgstr "" +msgstr "__matmul__" #: ../Doc/c-api/typeobj.rst:297 msgid ":c:member:`~PyMappingMethods.mp_length`" -msgstr "" +msgstr ":c:member:`~PyMappingMethods.mp_length`" #: ../Doc/c-api/typeobj.rst:297 ../Doc/c-api/typeobj.rst:306 #: ../Doc/c-api/typeobj.rst:413 msgid ":c:type:`lenfunc`" -msgstr "" +msgstr ":c:type:`lenfunc`" #: ../Doc/c-api/typeobj.rst:297 ../Doc/c-api/typeobj.rst:306 msgid "__len__" -msgstr "" +msgstr "__len__" #: ../Doc/c-api/typeobj.rst:299 msgid ":c:member:`~PyMappingMethods.mp_subscript`" -msgstr "" +msgstr ":c:member:`~PyMappingMethods.mp_subscript`" #: ../Doc/c-api/typeobj.rst:299 ../Doc/c-api/typeobj.rst:312 msgid "__getitem__" -msgstr "" +msgstr "__getitem__" #: ../Doc/c-api/typeobj.rst:301 msgid ":c:member:`~PyMappingMethods.mp_ass_subscript`" -msgstr "" +msgstr ":c:member:`~PyMappingMethods.mp_ass_subscript`" #: ../Doc/c-api/typeobj.rst:301 ../Doc/c-api/typeobj.rst:458 msgid ":c:type:`objobjargproc`" -msgstr "" +msgstr ":c:type:`objobjargproc`" #: ../Doc/c-api/typeobj.rst:301 msgid "__setitem__, __delitem__" -msgstr "" +msgstr "__setitem__, __delitem__" #: ../Doc/c-api/typeobj.rst:306 msgid ":c:member:`~PySequenceMethods.sq_length`" -msgstr "" +msgstr ":c:member:`~PySequenceMethods.sq_length`" #: ../Doc/c-api/typeobj.rst:308 msgid ":c:member:`~PySequenceMethods.sq_concat`" -msgstr "" +msgstr ":c:member:`~PySequenceMethods.sq_concat`" #: ../Doc/c-api/typeobj.rst:308 msgid "__add__" -msgstr "" +msgstr "__add__" #: ../Doc/c-api/typeobj.rst:310 msgid ":c:member:`~PySequenceMethods.sq_repeat`" -msgstr "" +msgstr ":c:member:`~PySequenceMethods.sq_repeat`" #: ../Doc/c-api/typeobj.rst:310 ../Doc/c-api/typeobj.rst:312 #: ../Doc/c-api/typeobj.rst:321 ../Doc/c-api/typeobj.rst:443 msgid ":c:type:`ssizeargfunc`" -msgstr "" +msgstr ":c:type:`ssizeargfunc`" #: ../Doc/c-api/typeobj.rst:312 msgid ":c:member:`~PySequenceMethods.sq_item`" -msgstr "" +msgstr ":c:member:`~PySequenceMethods.sq_item`" #: ../Doc/c-api/typeobj.rst:314 msgid ":c:member:`~PySequenceMethods.sq_ass_item`" -msgstr "" +msgstr ":c:member:`~PySequenceMethods.sq_ass_item`" #: ../Doc/c-api/typeobj.rst:314 ../Doc/c-api/typeobj.rst:448 msgid ":c:type:`ssizeobjargproc`" -msgstr "" +msgstr ":c:type:`ssizeobjargproc`" #: ../Doc/c-api/typeobj.rst:314 msgid "__setitem__ __delitem__" -msgstr "" +msgstr "__setitem__ __delitem__" #: ../Doc/c-api/typeobj.rst:317 msgid ":c:member:`~PySequenceMethods.sq_contains`" -msgstr "" +msgstr ":c:member:`~PySequenceMethods.sq_contains`" #: ../Doc/c-api/typeobj.rst:317 ../Doc/c-api/typeobj.rst:453 msgid ":c:type:`objobjproc`" -msgstr "" +msgstr ":c:type:`objobjproc`" #: ../Doc/c-api/typeobj.rst:317 msgid "__contains__" -msgstr "" +msgstr "__contains__" #: ../Doc/c-api/typeobj.rst:319 msgid ":c:member:`~PySequenceMethods.sq_inplace_concat`" -msgstr "" +msgstr ":c:member:`~PySequenceMethods.sq_inplace_concat`" #: ../Doc/c-api/typeobj.rst:321 msgid ":c:member:`~PySequenceMethods.sq_inplace_repeat`" -msgstr "" +msgstr ":c:member:`~PySequenceMethods.sq_inplace_repeat`" #: ../Doc/c-api/typeobj.rst:321 msgid "__imul__" -msgstr "" +msgstr "__imul__" #: ../Doc/c-api/typeobj.rst:325 msgid ":c:member:`~PyBufferProcs.bf_getbuffer`" -msgstr "" +msgstr ":c:member:`~PyBufferProcs.bf_getbuffer`" #: ../Doc/c-api/typeobj.rst:325 msgid ":c:func:`getbufferproc`" -msgstr "" +msgstr ":c:func:`getbufferproc`" #: ../Doc/c-api/typeobj.rst:327 msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`" -msgstr "" +msgstr ":c:member:`~PyBufferProcs.bf_releasebuffer`" #: ../Doc/c-api/typeobj.rst:327 msgid ":c:func:`releasebufferproc`" -msgstr "" +msgstr ":c:func:`releasebufferproc`" #: ../Doc/c-api/typeobj.rst:333 msgid "slot typedefs" -msgstr "" +msgstr "ranura de *typedefs*" #: ../Doc/c-api/typeobj.rst:336 msgid "typedef" -msgstr "" +msgstr "typedef" #: ../Doc/c-api/typeobj.rst:336 msgid "Parameter Types" -msgstr "" +msgstr "Tipos Parámetros" #: ../Doc/c-api/typeobj.rst:336 msgid "Return Type" -msgstr "" +msgstr "Tipo de Retorno" #: ../Doc/c-api/typeobj.rst:343 ../Doc/c-api/typeobj.rst:345 #: ../Doc/c-api/typeobj.rst:421 msgid "void" -msgstr "" +msgstr "void" #: ../Doc/c-api/typeobj.rst msgid ":c:type:`visitproc`" -msgstr "" +msgstr ":c:type:`visitproc`" #: ../Doc/c-api/typeobj.rst ../Doc/c-api/typeobj.rst:347 #: ../Doc/c-api/typeobj.rst:359 ../Doc/c-api/typeobj.rst:372 @@ -1109,31 +1137,31 @@ msgstr "" #: ../Doc/c-api/typeobj.rst:448 ../Doc/c-api/typeobj.rst:453 #: ../Doc/c-api/typeobj.rst:458 msgid "int" -msgstr "" +msgstr "int" #: ../Doc/c-api/typeobj.rst:401 msgid "Py_hash_t" -msgstr "" +msgstr "Py_hash_t" #: ../Doc/c-api/typeobj.rst:415 msgid ":c:type:`getbufferproc`" -msgstr "" +msgstr ":c:type:`getbufferproc`" #: ../Doc/c-api/typeobj.rst msgid ":c:type:`Py_buffer` *" -msgstr "" +msgstr ":c:type:`Py_buffer` *" #: ../Doc/c-api/typeobj.rst:421 msgid ":c:type:`releasebufferproc`" -msgstr "" +msgstr ":c:type:`releasebufferproc`" #: ../Doc/c-api/typeobj.rst:465 msgid "See :ref:`slot-typedefs` below for more detail." -msgstr "" +msgstr "Vea :ref:`slot-typedefs` abajo para más detalles." #: ../Doc/c-api/typeobj.rst:469 msgid "PyTypeObject Definition" -msgstr "" +msgstr "Definición de ``PyTypeObject``" #: ../Doc/c-api/typeobj.rst:471 msgid "" @@ -1141,10 +1169,13 @@ msgid "" "`Include/object.h`. For convenience of reference, this repeats the " "definition found there:" msgstr "" +"La definición de estructura para :c:type:`PyTypeObject` se puede encontrar " +"en :file:`Include/object.h`. Por conveniencia de referencia, esto repite la " +"definición encontrada allí:" #: ../Doc/c-api/typeobj.rst:481 msgid "PyObject Slots" -msgstr "" +msgstr "Ranuras (*Slots*) ``PyObject``" #: ../Doc/c-api/typeobj.rst:483 msgid "" @@ -1155,6 +1186,12 @@ msgid "" "tp_itemsize`, which means that its instances (i.e. type objects) *must* have " "the :attr:`ob_size` field." msgstr "" +"La estructura de objeto de tipo extiende la estructura :c:type:" +"`PyVarObject`. El campo :attr:`ob_size` se usa para tipos dinámicos (creado " +"por :func:`type_new`, generalmente llamado desde una declaración de clase). " +"Tenga en cuenta que :c:data:`PyType_Type` (el metatipo) inicializa :c:member:" +"`~PyTypeObject.tp_itemsize`, lo que significa que sus instancias (es decir, " +"objetos de tipo) *deben* tener el campo :attr:`ob_size`." #: ../Doc/c-api/typeobj.rst:493 msgid "" @@ -1167,6 +1204,15 @@ msgid "" "currently the only use is to print the objects that are still alive at the " "end of a run when the environment variable :envvar:`PYTHONDUMPREFS` is set." msgstr "" +"Estos campos solo están presentes cuando se define la macro " +"``Py_TRACE_REFS``. Su inicialización a ``NULL`` se ocupa de la macro " +"``PyObject_HEAD_INIT``. Para los objetos asignados estáticamente, estos " +"campos siempre permanecen ``NULL``. Para los objetos asignados " +"dinámicamente, estos dos campos se utilizan para vincular el objeto en una " +"lista doblemente vinculada de *todos* objetos vivos en el montón. Esto " +"podría usarse para varios propósitos de depuración; Actualmente, el único " +"uso es imprimir los objetos que aún están vivos al final de una ejecución " +"cuando se establece la variable de entorno :envvar:`PYTHONDUMPREFS`." #: ../Doc/c-api/typeobj.rst:502 ../Doc/c-api/typeobj.rst:515 #: ../Doc/c-api/typeobj.rst:538 ../Doc/c-api/typeobj.rst:551 @@ -1198,11 +1244,11 @@ msgstr "" #: ../Doc/c-api/typeobj.rst:1854 ../Doc/c-api/typeobj.rst:1868 #: ../Doc/c-api/typeobj.rst:1906 msgid "**Inheritance:**" -msgstr "" +msgstr "**Herencia:**" #: ../Doc/c-api/typeobj.rst:504 msgid "These fields are not inherited by subtypes." -msgstr "" +msgstr "Estos campos no son heredados por subtipos." #: ../Doc/c-api/typeobj.rst:509 msgid "" @@ -1212,11 +1258,17 @@ msgid "" "the type) do *not* count as references. But for dynamically allocated type " "objects, the instances *do* count as references." msgstr "" +"Este es el recuento de referencia del objeto tipo, inicializado a ``1`` por " +"el macro ``PyObject_HEAD_INIT``. Tenga en cuenta que para los objetos de " +"tipo asignados estáticamente, las instancias del tipo (objetos cuyo :attr:" +"`ob_type` apunta al tipo) *no* cuentan como referencias. Pero para los " +"objetos de tipo asignados dinámicamente, las instancias *sí* cuentan como " +"referencias." #: ../Doc/c-api/typeobj.rst:517 ../Doc/c-api/typeobj.rst:553 #: ../Doc/c-api/typeobj.rst:595 msgid "This field is not inherited by subtypes." -msgstr "" +msgstr "Este campo no es heredado por los subtipos." #: ../Doc/c-api/typeobj.rst:522 msgid "" @@ -1229,6 +1281,15 @@ msgid "" "explicitly at the start of the module's initialization function, before " "doing anything else. This is typically done like this::" msgstr "" +"Este es el tipo del tipo, en otras palabras, su metatipo. Se inicializa " +"mediante el argumento de la macro ``PyObject_HEAD_INIT``, y su valor " +"normalmente debería ser ``&PyType_Type``. Sin embargo, para los módulos de " +"extensión cargables dinámicamente que deben ser utilizables en Windows (al " +"menos), el compilador se queja de que este no es un inicializador válido. " +"Por lo tanto, la convención es pasar ``NULL`` al macro " +"``PyObject_HEAD_INIT`` e inicializar este campo explícitamente al comienzo " +"de la función de inicialización del módulo, antes de hacer cualquier otra " +"cosa. Esto normalmente se hace así:" #: ../Doc/c-api/typeobj.rst:533 msgid "" @@ -1237,6 +1298,10 @@ msgid "" "it to the :attr:`ob_type` field of the base class. :c:func:`PyType_Ready` " "will not change this field if it is non-zero." msgstr "" +"Esto debe hacerse antes de que se creen instancias del tipo. :c:func:" +"`PyType_Ready` comprueba si :attr:`ob_type` es ``NULL``, y si es así, lo " +"inicializa en el campo :attr:`ob_type` de la clase base. :c:func:" +"`PyType_Ready` no cambiará este campo si no es cero." #: ../Doc/c-api/typeobj.rst:540 ../Doc/c-api/typeobj.rst:684 #: ../Doc/c-api/typeobj.rst:818 ../Doc/c-api/typeobj.rst:910 @@ -1245,11 +1310,11 @@ msgstr "" #: ../Doc/c-api/typeobj.rst:1600 ../Doc/c-api/typeobj.rst:1691 #: ../Doc/c-api/typeobj.rst:1799 ../Doc/c-api/typeobj.rst:1908 msgid "This field is inherited by subtypes." -msgstr "" +msgstr "Este campo es heredado por subtipos." #: ../Doc/c-api/typeobj.rst:544 msgid "PyVarObject Slots" -msgstr "" +msgstr "Ranuras ``PyVarObject``" #: ../Doc/c-api/typeobj.rst:548 msgid "" @@ -1257,10 +1322,13 @@ msgid "" "For dynamically allocated type objects, this field has a special internal " "meaning." msgstr "" +"Para los objetos tipo asignados estáticamente, esto debe inicializarse a " +"cero. Para los objetos tipo asignados dinámicamente, este campo tiene un " +"significado interno especial." #: ../Doc/c-api/typeobj.rst:557 msgid "PyTypeObject Slots" -msgstr "" +msgstr "Ranuras ``PyTypeObject``" #: ../Doc/c-api/typeobj.rst:559 msgid "" @@ -1269,6 +1337,11 @@ msgid "" "\"Default\" section. (Note that many fields set on :c:type:" "`PyBaseObject_Type` and :c:type:`PyType_Type` effectively act as defaults.)" msgstr "" +"Cada ranura tiene una sección que describe la herencia. Si :c:func:" +"`PyType_Ready` puede establecer un valor cuando el campo se establece en " +"``NULL``, entonces también habrá una sección \"Predeterminada\". (Tenga en " +"cuenta que muchos campos establecidos en :c:type:`PyBaseObject_Type` y :c:" +"type:`PyType_Type` actúan efectivamente como valores predeterminados)." #: ../Doc/c-api/typeobj.rst:566 msgid "" @@ -1281,6 +1354,15 @@ msgid "" "mod:`Q` in package :mod:`P` should have the :c:member:`~PyTypeObject." "tp_name` initializer ``\"P.Q.M.T\"``." msgstr "" +"Puntero a una cadena de caracteres terminada en ``NULL`` que contiene el " +"nombre del tipo. Para los tipos que son accesibles como módulos globales, la " +"cadena debe ser el nombre completo del módulo, seguido de un punto, seguido " +"del nombre del tipo; para los tipos integrados, debe ser solo el nombre del " +"tipo. Si el módulo es un submódulo de un paquete, el nombre completo del " +"paquete es parte del nombre completo del módulo. Por ejemplo, un tipo " +"llamado :class:`T` definido en el módulo :mod:`M` en el subpaquete :mod:`Q` " +"en el paquete :mod:`P` debe tener el inicializador :c:member:`~PyTypeObject." +"tp_name` ``\"PQMT\"``." #: ../Doc/c-api/typeobj.rst:574 msgid "" @@ -1288,6 +1370,9 @@ msgid "" "and the module name explicitly stored in the type dict as the value for key " "``'__module__'``." msgstr "" +"Para los objetos tipo asignados dinámicamente, este debería ser solo el " +"nombre del tipo, y el nombre del módulo almacenado explícitamente en el tipo " +"diccionario (*dict*) como el valor para la clave ``'__module__'``." #: ../Doc/c-api/typeobj.rst:578 msgid "" @@ -1296,6 +1381,10 @@ msgid "" "`__module__` attribute, and everything after the last dot is made accessible " "as the :attr:`~definition.__name__` attribute." msgstr "" +"Para los objetos tipo asignados estáticamente, el campo ``tp_name`` debe " +"contener un punto. Todo antes del último punto se hace accesible como el " +"atributo :attr:`__module__`, y todo después del último punto se hace " +"accesible como el atributo :attr:`~definition.__name__`." #: ../Doc/c-api/typeobj.rst:583 msgid "" @@ -1306,6 +1395,12 @@ msgid "" "pickle. Additionally, it will not be listed in module documentations " "created with pydoc." msgstr "" +"Si no hay ningún punto, todo el campo :c:member:`~PyTypeObject.tp_name` se " +"hace accesible como el atributo :attr:`~definition.__name__`, y el atributo :" +"attr:`__module__` no está definido (a menos que sea explícitamente " +"establecido en el diccionario, como se explicó anteriormente). Esto " +"significa que su tipo será imposible de guardar como *pickle*. Además, no " +"figurará en la documentación del módulo creado con *pydoc*." #: ../Doc/c-api/typeobj.rst:589 msgid "" @@ -1313,11 +1408,15 @@ msgid "" "`PyTypeObject` (other than potentially :c:member:`~PyTypeObject." "tp_itemsize`)." msgstr "" +"Este campo no debe ser ``NULL``. Es el único campo obligatorio en :c:func:" +"`PyTypeObject` (que no sea potencialmente :c:member:`~PyTypeObject." +"tp_itemsize`)." #: ../Doc/c-api/typeobj.rst:601 msgid "" "These fields allow calculating the size in bytes of instances of the type." msgstr "" +"Estos campos permiten calcular el tamaño en bytes de instancias del tipo." #: ../Doc/c-api/typeobj.rst:603 msgid "" @@ -1327,6 +1426,12 @@ msgid "" "a type with fixed-length instances, all instances have the same size, given " "in :c:member:`~PyTypeObject.tp_basicsize`." msgstr "" +"Hay dos tipos de tipos: los tipos con instancias de longitud fija tienen un " +"campo cero :c:member:`~PyTypeObject.tp_itemsize`, los tipos con instancias " +"de longitud variable tienen un campo distinto de cero :c:member:" +"`~PyTypeObject.tp_itemsize`. Para un tipo con instancias de longitud fija, " +"todas las instancias tienen el mismo tamaño, dado en :c:member:" +"`~PyTypeObject.tp_basicsize`." #: ../Doc/c-api/typeobj.rst:608 msgid "" @@ -1341,6 +1446,17 @@ msgid "" "length (for example, the structure for the list type has fixed-length " "instances, yet those instances have a meaningful :attr:`ob_size` field)." msgstr "" +"Para un tipo con instancias de longitud variable, las instancias deben tener " +"un campo :attr:`ob_size`, y el tamaño de la instancia es :c:member:" +"`~PyTypeObject.tp_basicsize` más *N* veces :c:member:`~PyTypeObject. " +"tp_itemsize`, donde N es la \"longitud\" del objeto. El valor de *N* " +"generalmente se almacena en el campo :attr:`ob_size` de la instancia. Hay " +"excepciones: por ejemplo, los *ints* usan un negativo :attr:`ob_size` para " +"indicar un número negativo, y *N* es ``abs(ob_size)`` allí. Además, la " +"presencia de un campo :attr:`ob_size` en el diseño de la instancia no " +"significa que la estructura de la instancia sea de longitud variable (por " +"ejemplo, la estructura para el tipo de lista tiene instancias de longitud " +"fija, aunque esas instancias tienen un significativo campo :attr:`ob_size`)." #: ../Doc/c-api/typeobj.rst:619 msgid "" @@ -1353,6 +1469,14 @@ msgid "" "declare the instance layout. The basic size does not include the GC header " "size." msgstr "" +"El tamaño básico incluye los campos en la instancia declarada por el macro :" +"c:macro:`PyObject_HEAD` o :c:macro:`PyObject_VAR_HEAD` (lo que se use para " +"declarar la estructura de la instancia) y esto a su vez incluye campos :attr:" +"`_ob_prev` y :attr:`_ob_next` si están presentes. Esto significa que la " +"única forma correcta de obtener un inicializador para :c:member:" +"`~PyTypeObject.tp_basicsize` es usar el operador ``sizeof`` en la estructura " +"utilizada para declarar el diseño de la instancia. El tamaño básico no " +"incluye el tamaño del encabezado del GC." #: ../Doc/c-api/typeobj.rst:627 msgid "" @@ -1364,11 +1488,20 @@ msgid "" "tp_basicsize` is a multiple of ``sizeof(double)`` (assuming this is the " "alignment requirement for ``double``)." msgstr "" +"Una nota sobre la alineación: si los elementos variables requieren una " +"alineación particular, esto debe ser atendido por el valor de :c:member:" +"`~PyTypeObject.tp_basicsize`. Ejemplo: supongamos que un tipo implementa un " +"arreglo de dobles (``double``). :c:member:`~PyTypeObject.tp_itemsize` es " +"``sizeof(double)``. Es responsabilidad del programador que :c:member:" +"`~PyTypeObject.tp_basicsize` es un múltiplo de ``sizeof(double)`` " +"(suponiendo que este sea el requisito de alineación para ``double``)." #: ../Doc/c-api/typeobj.rst:634 msgid "" "For any type with variable-length instances, this field must not be ``NULL``." msgstr "" +"Para cualquier tipo con instancias de longitud variable, este campo no debe " +"ser ``NULL``." #: ../Doc/c-api/typeobj.rst:638 msgid "" @@ -1377,6 +1510,11 @@ msgid "" "set :c:member:`~PyTypeObject.tp_itemsize` to a different non-zero value in a " "subtype (though this depends on the implementation of the base type)." msgstr "" +"Estos campos se heredan por separado por subtipos. Si el tipo base tiene un " +"miembro distinto de cero :c:member:`~PyTypeObject.tp_itemsize`, generalmente " +"no es seguro establecer :c:member:`~PyTypeObject.tp_itemsize` en un valor " +"diferente de cero en un subtipo ( aunque esto depende de la implementación " +"del tipo base)." #: ../Doc/c-api/typeobj.rst:646 msgid "" @@ -1385,6 +1523,10 @@ msgid "" "deallocated (as is the case for the singletons ``None`` and ``Ellipsis``). " "The function signature is::" msgstr "" +"Un puntero a la función destructor de instancias. Esta función debe " +"definirse a menos que el tipo garantice que sus instancias nunca se " +"desasignarán (como es el caso de los singletons ``None`` y ``Ellipsis``). La " +"firma de la función es::" #: ../Doc/c-api/typeobj.rst:652 msgid "" @@ -1403,6 +1545,21 @@ msgid "" "`PyObject_VarNew`, or :c:func:`PyObject_GC_Del` if the instance was " "allocated using :c:func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar`." msgstr "" +"La función destructor es llamada por las macros :c:func:`Py_DECREF` y :c:" +"func:`Py_XDECREF` cuando el nuevo recuento de referencia es cero. En este " +"punto, la instancia todavía existe, pero no hay referencias a ella. La " +"función destructor debe liberar todas las referencias que posee la " +"instancia, liberar todos los búferes de memoria que posee la instancia " +"(utilizando la función de liberación correspondiente a la función de " +"asignación utilizada para asignar el búfer) y llamar a los tipos función :c:" +"member:`~PyTypeObject.tp_free`. Si el tipo no es subtipable (no tiene " +"establecido el bit de indicador :const:`Py_TPFLAGS_BASETYPE`), está " +"permitido llamar al objeto desasignador directamente en lugar de a través " +"de :c:member:`~PyTypeObject.tp_free`. El objeto desasignador debe ser el " +"utilizado para asignar la instancia; normalmente es :c:func:`PyObject_Del` " +"si la instancia se asignó usando :c:func:`PyObject_New` o :c:func:" +"`PyObject_VarNew`, o :c:func:`PyObject_GC_Del` si la instancia se asignó " +"usando :c:func:`PyObject_GC_New` o :c:func:`PyObject_GC_NewVar`." #: ../Doc/c-api/typeobj.rst:667 msgid "" @@ -1411,6 +1568,10 @@ msgid "" "calling the type deallocator. In order to avoid dangling pointers, the " "recommended way to achieve this is:" msgstr "" +"Finalmente, si el tipo está asignado en el montón (:const:" +"`Py_TPFLAGS_HEAPTYPE`), el desasignador debería disminuir el conteo de " +"referencia para su objeto tipo después de llamar al desasignador del tipo. " +"Para evitar punteros colgantes, la forma recomendada de lograr esto es:" #: ../Doc/c-api/typeobj.rst:689 msgid "" @@ -1418,6 +1579,9 @@ msgid "" "object using the *vectorcall* protocol, a more efficient alternative of the " "simpler :c:member:`~PyTypeObject.tp_call`." msgstr "" +"Un desplazamiento opcional a una función por instancia que implementa la " +"llamada al objeto usando el protocolo *vectorcall*, una alternativa más " +"eficiente del más simple :c:member:`~PyTypeObject.tp_call`." #: ../Doc/c-api/typeobj.rst:693 msgid "" @@ -1426,6 +1590,11 @@ msgid "" "instance of a :c:type:`vectorcallfunc` pointer. The signature is the same as " "for :c:func:`_PyObject_Vectorcall`::" msgstr "" +"Este campo solo se usa si se establece el indicador :const:" +"`_Py_TPFLAGS_HAVE_VECTORCALL`. Si es así, debe ser un número entero positivo " +"que contenga el desplazamiento en la instancia de un puntero a :c:type:" +"`vectorcallfunc`. La firma es la misma que para :c:func:" +"`_PyObject_Vectorcall`::" #: ../Doc/c-api/typeobj.rst:700 msgid "" @@ -1433,6 +1602,10 @@ msgid "" "as if :const:`_Py_TPFLAGS_HAVE_VECTORCALL` was not set: calling the instance " "falls back to :c:member:`~PyTypeObject.tp_call`." msgstr "" +"El puntero *vectorcallfunc* puede ser cero, en cuyo caso la instancia se " +"comporta como si :const:`_Py_TPFLAGS_HAVE_VECTORCALL` no se hubiera " +"establecido: la llamada de la instancia recae en :c:member:`~PyTypeObject." +"tp_call`." #: ../Doc/c-api/typeobj.rst:704 msgid "" @@ -1441,12 +1614,18 @@ msgid "" "*vectorcallfunc* function. This can be done by setting *tp_call* to " "``PyVectorcall_Call``:" msgstr "" +"Cualquier clase que establezca ``_Py_TPFLAGS_HAVE_VECTORCALL`` también debe " +"establecer :c:member:`~PyTypeObject.tp_call` y asegurarse de que su " +"comportamiento sea coherente con la función *vectorcallfunc*. Esto se puede " +"hacer configurando *tp_call* en ``PyVectorcall_Call``:" #: ../Doc/c-api/typeobj.rst:711 msgid "" "Call *callable*'s *vectorcallfunc* with positional and keyword arguments " "given in a tuple and dict, respectively." msgstr "" +"Llama el *callable* de *vectorcallfunc* con argumentos posicionales y de " +"palabras clave dados en una tupla y diccionario (*dict*), respectivamente." #: ../Doc/c-api/typeobj.rst:714 msgid "" @@ -1455,6 +1634,10 @@ msgid "" "``_Py_TPFLAGS_HAVE_VECTORCALL`` flag. To call an object, use one of the :c:" "func:`PyObject_Call ` functions instead." msgstr "" +"Esta función está destinada a ser utilizada en la ranura ``tp_call``. No " +"vuelve a caer a ``tp_call`` y actualmente no marca la bandera " +"``_Py_TPFLAGS_HAVE_VECTORCALL``. Para llamar a un objeto, use una de las " +"funciones :c:func:`PyObject_Call` en su lugar." #: ../Doc/c-api/typeobj.rst:722 msgid "" @@ -1463,6 +1646,10 @@ msgid "" "``tp_call`` is updated, possibly making it inconsistent with the vectorcall " "function." msgstr "" +"No se recomienda para :ref:`tipos montículo ` para implementar " +"el protocolo *vectorcall*. Cuando un usuario establece ``__call__`` en el " +"código Python, solo se actualiza ``tp_call``, posiblemente haciendo que sea " +"inconsistente con la función *vectorcall*." #: ../Doc/c-api/typeobj.rst:729 msgid "" @@ -1470,12 +1657,17 @@ msgid "" "expected to be finalized in Python 3.9. If you use vectorcall, plan for " "updating your code for Python 3.9." msgstr "" +"La semántica de la ranura ``tp_vectorcall_offset`` es provisional y se " +"espera que finalice en Python 3.9. Si usa *vectorcall*, planifique " +"actualizar su código para Python 3.9." #: ../Doc/c-api/typeobj.rst:735 msgid "" "This slot was used for print formatting in Python 2.x. In Python 3.0 to 3.7, " "it was reserved and named ``tp_print``." msgstr "" +"Esta ranura se usó para el formato de impresión en Python 2.x. En Python 3.0 " +"a 3.7, estaba reservado y se llamaba ``tp_print``." #: ../Doc/c-api/typeobj.rst:740 msgid "" @@ -1484,16 +1676,24 @@ msgid "" "from its base type when the subtype’s :c:member:`~PyTypeObject.tp_call` is " "``NULL``." msgstr "" +"Los subtipos heredan este campo junto con :c:member:`~PyTypeObject.tp_call`: " +"un subtipo hereda :c:member:`~PyTypeObject.tp_vectorcall_offset` de su tipo " +"base cuando el subtipo :c:member:`~PyTypeObject.tp_call` es ``NULL``." #: ../Doc/c-api/typeobj.rst:745 msgid "" "Note that `heap types`_ (including subclasses defined in Python) do not " "inherit the :const:`_Py_TPFLAGS_HAVE_VECTORCALL` flag." msgstr "" +"Tenga en cuenta que los tipos montículo, (`heap types`_, incluidas las " +"subclases definidas en Python) no heredan el indicador :const:" +"`_Py_TPFLAGS_HAVE_VECTORCALL`." #: ../Doc/c-api/typeobj.rst:751 msgid "An optional pointer to the get-attribute-string function." msgstr "" +"Un puntero opcional a la función \"obtener atributo cadena de caracteres" +"\" (*get-attribute-string*)." #: ../Doc/c-api/typeobj.rst:753 msgid "" @@ -1502,10 +1702,14 @@ msgid "" "but taking a C string instead of a Python string object to give the " "attribute name." msgstr "" +"Este campo está en desuso. Cuando se define, debe apuntar a una función que " +"actúe igual que la función :c:member:`~PyTypeObject.tp_getattro`, pero " +"tomando una cadena de caracteres C en lugar de un objeto de cadena Python " +"para dar el nombre del atributo." #: ../Doc/c-api/typeobj.rst:759 ../Doc/c-api/typeobj.rst:951 msgid "Group: :attr:`tp_getattr`, :attr:`tp_getattro`" -msgstr "" +msgstr "Grupo: :attr:`tp_getattr`, :attr:`tp_getattro`" #: ../Doc/c-api/typeobj.rst:761 msgid "" @@ -1515,11 +1719,16 @@ msgid "" "subtype's :c:member:`~PyTypeObject.tp_getattr` and :c:member:`~PyTypeObject." "tp_getattro` are both ``NULL``." msgstr "" +"Este campo es heredado por los subtipos junto con :c:member:`~PyTypeObject." +"tp_getattro`: un subtipo hereda ambos :c:member:`~PyTypeObject.tp_getattr` " +"y :c:member:`~PyTypeObject.tp_getattro` de su base escriba cuando los " +"subtipos :c:member:`~PyTypeObject.tp_getattr` y :c:member:`~PyTypeObject." +"tp_getattro` son ambos ``NULL``." #: ../Doc/c-api/typeobj.rst:768 ../Doc/c-api/typeobj.rst:964 msgid "" "An optional pointer to the function for setting and deleting attributes." -msgstr "" +msgstr "Un puntero opcional a la función para configurar y eliminar atributos." #: ../Doc/c-api/typeobj.rst:770 msgid "" @@ -1528,10 +1737,14 @@ msgid "" "but taking a C string instead of a Python string object to give the " "attribute name." msgstr "" +"Este campo está en desuso. Cuando se define, debe apuntar a una función que " +"actúe igual que la función :c:member:`~PyTypeObject.tp_setattro`, pero " +"tomando una cadena de caracteres C en lugar de un objeto de cadena Python " +"para dar el nombre del atributo." #: ../Doc/c-api/typeobj.rst:776 ../Doc/c-api/typeobj.rst:977 msgid "Group: :attr:`tp_setattr`, :attr:`tp_setattro`" -msgstr "" +msgstr "Grupo: :attr:`tp_setattr`, :attr:`tp_setattro`" #: ../Doc/c-api/typeobj.rst:778 msgid "" @@ -1541,6 +1754,11 @@ msgid "" "subtype's :c:member:`~PyTypeObject.tp_setattr` and :c:member:`~PyTypeObject." "tp_setattro` are both ``NULL``." msgstr "" +"Este campo es heredado por los subtipos junto con :c:member:`~PyTypeObject." +"tp_setattro`: un subtipo hereda ambos :c:member:`~PyTypeObject.tp_setattr` " +"y :c:member:`~PyTypeObject.tp_setattro` de su base escriba cuando los " +"subtipos :c:member:`~PyTypeObject.tp_setattr` y :c:member:`~PyTypeObject." +"tp_setattro` son ambos ``NULL``." #: ../Doc/c-api/typeobj.rst:785 msgid "" @@ -1548,26 +1766,34 @@ msgid "" "objects which implement :term:`awaitable` and :term:`asynchronous iterator` " "protocols at the C-level. See :ref:`async-structs` for details." msgstr "" +"Puntero a una estructura adicional que contiene campos relevantes solo para " +"los objetos que implementan los protocolos \"esperable\" (:term:`Waitable`) " +"y \"iterador asíncrono\" (:term:`asynchronous iterator`) en el nivel C. Ver :" +"ref:`async-structs` para más detalles." #: ../Doc/c-api/typeobj.rst:789 msgid "Formerly known as ``tp_compare`` and ``tp_reserved``." -msgstr "" +msgstr "Anteriormente conocidos como ``tp_compare`` y ``tp_reserved``." #: ../Doc/c-api/typeobj.rst:794 msgid "" "The :c:member:`~PyTypeObject.tp_as_async` field is not inherited, but the " "contained fields are inherited individually." msgstr "" +"El campo :c:member:`~PyTypeObject.tp_as_async` no se hereda, pero los campos " +"contenidos se heredan individualmente." #: ../Doc/c-api/typeobj.rst:802 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`repr`." msgstr "" +"Un puntero opcional a una función que implementa la función incorporada :" +"func:`repr`." #: ../Doc/c-api/typeobj.rst:805 msgid "The signature is the same as for :c:func:`PyObject_Repr`::" -msgstr "" +msgstr "La firma es la misma que para :c:func:`PyObject_Repr`::" #: ../Doc/c-api/typeobj.rst:809 msgid "" @@ -1577,6 +1803,12 @@ msgid "" "feasible, it should return a string starting with ``'<'`` and ending with " "``'>'`` from which both the type and the value of the object can be deduced." msgstr "" +"La función debe retornar una cadena de caracteres o un objeto Unicode. " +"Idealmente, esta función debería retornar una cadena que, cuando se pasa a :" +"func:`eval`, dado un entorno adecuado, devuelve un objeto con el mismo " +"valor. Si esto no es factible, debe devolver una cadena que comience con " +"``'<'`` y termine con ``'>'`` desde la cual se puede deducir tanto el tipo " +"como el valor del objeto." #: ../Doc/c-api/typeobj.rst:820 ../Doc/c-api/typeobj.rst:932 #: ../Doc/c-api/typeobj.rst:957 ../Doc/c-api/typeobj.rst:983 @@ -1586,7 +1818,7 @@ msgstr "" #: ../Doc/c-api/typeobj.rst:1711 ../Doc/c-api/typeobj.rst:1749 #: ../Doc/c-api/typeobj.rst:1770 ../Doc/c-api/typeobj.rst:1801 msgid "**Default:**" -msgstr "" +msgstr "**Por defecto:**" #: ../Doc/c-api/typeobj.rst:822 #, python-format @@ -1595,6 +1827,9 @@ msgid "" "returned, where ``%s`` is replaced by the type name, and ``%p`` by the " "object's memory address." msgstr "" +"Cuando este campo no está configurado, se devuelve una cadena de caracteres " +"de la forma ``<%s object at %p>``, donde ``%s`` se reemplaza por el nombre " +"del tipo y ``%p`` por dirección de memoria del objeto." #: ../Doc/c-api/typeobj.rst:829 msgid "" @@ -1602,12 +1837,17 @@ msgid "" "objects which implement the number protocol. These fields are documented " "in :ref:`number-structs`." msgstr "" +"Puntero a una estructura adicional que contiene campos relevantes solo para " +"objetos que implementan el protocolo numérico. Estos campos están " +"documentados en :ref:`number-structs`." #: ../Doc/c-api/typeobj.rst:835 msgid "" "The :c:member:`~PyTypeObject.tp_as_number` field is not inherited, but the " "contained fields are inherited individually." msgstr "" +"El campo :c:member:`~PyTypeObject.tp_as_number` no se hereda, pero los " +"campos contenidos se heredan individualmente." #: ../Doc/c-api/typeobj.rst:841 msgid "" @@ -1615,12 +1855,17 @@ msgid "" "objects which implement the sequence protocol. These fields are documented " "in :ref:`sequence-structs`." msgstr "" +"Puntero a una estructura adicional que contiene campos relevantes solo para " +"objetos que implementan el protocolo de secuencia. Estos campos están " +"documentados en :ref:`secuencia-estructuras`." #: ../Doc/c-api/typeobj.rst:847 msgid "" "The :c:member:`~PyTypeObject.tp_as_sequence` field is not inherited, but the " "contained fields are inherited individually." msgstr "" +"El campo :c:member:`~PyTypeObject.tp_as_sequence` no se hereda, pero los " +"campos contenidos se heredan individualmente." #: ../Doc/c-api/typeobj.rst:853 msgid "" @@ -1628,22 +1873,29 @@ msgid "" "objects which implement the mapping protocol. These fields are documented " "in :ref:`mapping-structs`." msgstr "" +"Puntero a una estructura adicional que contiene campos relevantes solo para " +"objetos que implementan el protocolo de mapeo. Estos campos están " +"documentados en :ref:`mapping-structs`." #: ../Doc/c-api/typeobj.rst:859 msgid "" "The :c:member:`~PyTypeObject.tp_as_mapping` field is not inherited, but the " "contained fields are inherited individually." msgstr "" +"El campo :c:member:`~PyTypeObject.tp_as_mapping` no se hereda, pero los " +"campos contenidos se heredan individualmente." #: ../Doc/c-api/typeobj.rst:867 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`hash`." msgstr "" +"Un puntero opcional a una función que implementa la función incorporada :" +"func:`hash`." #: ../Doc/c-api/typeobj.rst:870 msgid "The signature is the same as for :c:func:`PyObject_Hash`::" -msgstr "" +msgstr "La firma es la misma que para :c:func:`PyObject_Hash`::" #: ../Doc/c-api/typeobj.rst:874 msgid "" @@ -1651,6 +1903,9 @@ msgid "" "error occurs during the computation of the hash value, the function should " "set an exception and return ``-1``." msgstr "" +"El valor ``-1`` no debe retornarse como un valor de retorno normal; Cuando " +"se produce un error durante el cálculo del valor *hash*, la función debe " +"establecer una excepción y devolver ``-1``." #: ../Doc/c-api/typeobj.rst:878 msgid "" @@ -1658,6 +1913,10 @@ msgid "" "attempt to take the hash of the object raises :exc:`TypeError`. This is the " "same as setting it to :c:func:`PyObject_HashNotImplemented`." msgstr "" +"Cuando este campo no está establecido (*y* :attr:`tp_richcompare` no está " +"establecido), se lanza :exc:`TypeError` cuando hay un intento de tomar el " +"*hash* del objeto. Esto es lo mismo que establecerlo en :c:func:" +"`PyObject_HashNotImplemented`." #: ../Doc/c-api/typeobj.rst:882 msgid "" @@ -1669,10 +1928,18 @@ msgid "" "the Python level will result in the ``tp_hash`` slot being set to :c:func:" "`PyObject_HashNotImplemented`." msgstr "" +"Este campo se puede establecer explícitamente en :c:func:" +"`PyObject_HashNotImplemented` para bloquear la herencia del método *hash* de " +"un tipo primario. Esto se interpreta como el equivalente de ``__hash__ = " +"None`` en el nivel de Python, lo que hace que ``isinstance(o, collections." +"Hashable)`` devuelva correctamente ``False``. Tenga en cuenta que lo " +"contrario también es cierto: establecer ``__hash__ = None`` en una clase en " +"el nivel de Python dará como resultado que la ranura ``tp_hash`` se " +"establezca en :c:func:`PyObject_HashNotImplemented`." #: ../Doc/c-api/typeobj.rst:892 ../Doc/c-api/typeobj.rst:1379 msgid "Group: :attr:`tp_hash`, :attr:`tp_richcompare`" -msgstr "" +msgstr "Grupo: :attr:`tp_hash`, :attr:`tp_richcompare`" #: ../Doc/c-api/typeobj.rst:894 msgid "" @@ -1682,6 +1949,11 @@ msgid "" "member:`~PyTypeObject.tp_richcompare` and :c:member:`~PyTypeObject.tp_hash` " "are both ``NULL``." msgstr "" +"Este campo es heredado por subtipos junto con :c:member:`~PyTypeObject." +"tp_richcompare`: un subtipo hereda ambos :c:member:`~PyTypeObject." +"tp_richcompare` y :c:member:`~PyTypeObject.tp_hash`, cuando los subtipos :c:" +"member:`~PyTypeObject.tp_richcompare` y :c:member:`~PyTypeObject.tp_hash` " +"son ambos ``NULL``." #: ../Doc/c-api/typeobj.rst:902 msgid "" @@ -1689,6 +1961,9 @@ msgid "" "should be ``NULL`` if the object is not callable. The signature is the same " "as for :c:func:`PyObject_Call`::" msgstr "" +"Un puntero opcional a una función que implementa la llamada al objeto. Esto " +"debería ser ``NULL`` si el objeto no es invocable. La firma es la misma que " +"para :c:func:`PyObject_Call`::" #: ../Doc/c-api/typeobj.rst:915 msgid "" @@ -1698,10 +1973,15 @@ msgid "" "`PyObject_Str` to do the actual work, and :c:func:`PyObject_Str` will call " "this handler.)" msgstr "" +"Un puntero opcional a una función que implementa la operación integrada :" +"func:`str`. (Tenga en cuenta que :class:`str` es un tipo ahora, y :func:" +"`str` llama al constructor para ese tipo. Este constructor llama a :c:func:" +"`PyObject_Str` para hacer el trabajo real, y :c:func:`PyObject_Str` llamará " +"a este controlador.)" #: ../Doc/c-api/typeobj.rst:920 msgid "The signature is the same as for :c:func:`PyObject_Str`::" -msgstr "" +msgstr "La firma es la misma que para :c:func:`PyObject_Str`::" #: ../Doc/c-api/typeobj.rst:924 msgid "" @@ -1710,20 +1990,27 @@ msgid "" "representation that will be used, among other things, by the :func:`print` " "function." msgstr "" +"La función debe devolver una cadena de caracteres o un objeto Unicode. Debe " +"ser una representación de cadena \"amigable\" del objeto, ya que esta es la " +"representación que será utilizada, entre otras cosas, por la función :func:" +"`print`." #: ../Doc/c-api/typeobj.rst:934 msgid "" "When this field is not set, :c:func:`PyObject_Repr` is called to return a " "string representation." msgstr "" +"Cuando este campo no está configurado, se llama a :c:func:`PyObject_Repr` " +"para retornar una representación de cadena de caracteres." #: ../Doc/c-api/typeobj.rst:940 msgid "An optional pointer to the get-attribute function." msgstr "" +"Un puntero opcional a la función \"obtener atributo\" (*get-attribute*)." #: ../Doc/c-api/typeobj.rst:942 msgid "The signature is the same as for :c:func:`PyObject_GetAttr`::" -msgstr "" +msgstr "La firma es la misma que para :c:func:`PyObject_GetAttr`::" #: ../Doc/c-api/typeobj.rst:946 msgid "" @@ -1731,6 +2018,9 @@ msgid "" "`PyObject_GenericGetAttr`, which implements the normal way of looking for " "object attributes." msgstr "" +"Por lo general, es conveniente establecer este campo en :c:func:" +"`PyObject_GenericGetAttr`, que implementa la forma normal de buscar " +"atributos de objeto." #: ../Doc/c-api/typeobj.rst:953 msgid "" @@ -1740,14 +2030,19 @@ msgid "" "subtype's :c:member:`~PyTypeObject.tp_getattr` and :c:member:`~PyTypeObject." "tp_getattro` are both ``NULL``." msgstr "" +"Este campo es heredado por los subtipos junto con :c:member:`~PyTypeObject." +"tp_getattr`: un subtipo hereda ambos :c:member:`~PyTypeObject.tp_getattr` y :" +"c:member:`~PyTypeObject.tp_getattro` de su base escriba cuando los subtipos :" +"c:member:`~PyTypeObject.tp_getattr` y :c:member:`~PyTypeObject.tp_getattro` " +"son ambos ``NULL``." #: ../Doc/c-api/typeobj.rst:959 msgid ":c:type:`PyBaseObject_Type` uses :c:func:`PyObject_GenericGetAttr`." -msgstr "" +msgstr ":c:type:`PyBaseObject_Type` usa :c:func:`PyObject_GenericGetAttr`." #: ../Doc/c-api/typeobj.rst:966 msgid "The signature is the same as for :c:func:`PyObject_SetAttr`::" -msgstr "" +msgstr "La firma es la misma que para :c:func:`PyObject_SetAttr`::" #: ../Doc/c-api/typeobj.rst:970 msgid "" @@ -1756,6 +2051,10 @@ msgid "" "`PyObject_GenericSetAttr`, which implements the normal way of setting object " "attributes." msgstr "" +"Además, se debe admitir la configuración de *value* en ``NULL`` para " +"eliminar un atributo. Por lo general, es conveniente establecer este campo " +"en :c:func:`PyObject_GenericSetAttr`, que implementa la forma normal de " +"establecer los atributos del objeto." #: ../Doc/c-api/typeobj.rst:979 msgid "" @@ -1765,10 +2064,15 @@ msgid "" "subtype's :c:member:`~PyTypeObject.tp_setattr` and :c:member:`~PyTypeObject." "tp_setattro` are both ``NULL``." msgstr "" +"Los subtipos heredan este campo junto con :c:member:`~PyTypeObject." +"tp_setattr`: un subtipo hereda ambos :c:member:`~PyTypeObject.tp_setattr` y :" +"c:member:`~PyTypeObject.tp_setattro` de su base escriba cuando los subtipos :" +"c:member:`~PyTypeObject.tp_setattr` y :c:member:`~PyTypeObject.tp_setattro` " +"son ambos ``NULL``." #: ../Doc/c-api/typeobj.rst:985 msgid ":c:type:`PyBaseObject_Type` uses :c:func:`PyObject_GenericSetAttr`." -msgstr "" +msgstr ":c:type:`PyBaseObject_Type` usa :c:func:`PyObject_GenericSetAttr`." #: ../Doc/c-api/typeobj.rst:990 msgid "" @@ -1776,12 +2080,17 @@ msgid "" "objects which implement the buffer interface. These fields are documented " "in :ref:`buffer-structs`." msgstr "" +"Puntero a una estructura adicional que contiene campos relevantes solo para " +"objetos que implementan la interfaz del búfer. Estos campos están " +"documentados en :ref:`buffer-structs`." #: ../Doc/c-api/typeobj.rst:996 msgid "" "The :c:member:`~PyTypeObject.tp_as_buffer` field is not inherited, but the " "contained fields are inherited individually." msgstr "" +"El campo :c:member:`~PyTypeObject.tp_as_buffer` no se hereda, pero los " +"campos contenidos se heredan individualmente." #: ../Doc/c-api/typeobj.rst:1002 msgid "" @@ -1794,6 +2103,15 @@ msgid "" "valid; if such a flag bit is clear, the type fields it guards must not be " "accessed and must be considered to have a zero or ``NULL`` value instead." msgstr "" +"Este campo es una máscara de bits de varias banderas. Algunas banderas " +"indican semántica variante para ciertas situaciones; otros se utilizan para " +"indicar que ciertos campos en el tipo de objeto (o en las estructuras de " +"extensión a las que se hace referencia a través de :c:member:`~PyTypeObject." +"tp_as_number`, :c:member:`~PyTypeObject.tp_as_sequence`, :c:member:" +"`~PyTypeObject.tp_as_mapping`, y :c:member:`~PyTypeObject.tp_as_buffer`) que " +"históricamente no siempre estuvieron presentes son válidos; si dicho bit de " +"bandera está claro, no se debe acceder a los campos de tipo que protege y se " +"debe considerar que tienen un valor cero o ``NULL``." #: ../Doc/c-api/typeobj.rst:1012 msgid "" @@ -1809,16 +2127,29 @@ msgid "" "`~PyTypeObject.tp_traverse` and :c:member:`~PyTypeObject.tp_clear` fields in " "the subtype exist and have ``NULL`` values." msgstr "" +"La herencia de este campo es complicada. La mayoría de los bits de bandera " +"se heredan individualmente, es decir, si el tipo base tiene un conjunto de " +"bits de bandera, el subtipo hereda este bit de bandera. Los bits de bandera " +"que pertenecen a las estructuras de extensión se heredan estrictamente si la " +"estructura de extensión se hereda, es decir, el valor del tipo base del bit " +"de bandera se copia en el subtipo junto con un puntero a la estructura de " +"extensión. El bit de bandera :const:`Py_TPFLAGS_HAVE_GC` se hereda junto " +"con :c:member:`~PyTypeObject.tp_traverse` y :c:member:`~PyTypeObject." +"tp_clear`, es decir, si el bit de bandera :const:`Py_TPFLAGS_HAVE_GC` está " +"claro en el subtipo y los campos :c:member:`~PyTypeObject.tp_traverse` y :c:" +"member:`~PyTypeObject.tp_clear` en el subtipo existen y tienen valores " +"``NULL``." #: ../Doc/c-api/typeobj.rst:1027 msgid "" ":c:type:`PyBaseObject_Type` uses ``Py_TPFLAGS_DEFAULT | " "Py_TPFLAGS_BASETYPE``." msgstr "" +":c:type:`PyBaseObject_Type` usa ``Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE``." #: ../Doc/c-api/typeobj.rst:1030 msgid "**Bit Masks:**" -msgstr "" +msgstr "**Máscaras de bits:**" #: ../Doc/c-api/typeobj.rst:1032 msgid "" @@ -1828,6 +2159,11 @@ msgid "" "flags value, *tp* and *f*, and checks whether ``tp->tp_flags & f`` is non-" "zero." msgstr "" +"Las siguientes máscaras de bits están definidas actualmente; estos se pueden " +"unidos por *OR* usando el operador ``|`` para formar el valor del campo :c:" +"member:`~PyTypeObject.tp_flags`. El macro :c:func:`PyType_HasFeature` toma " +"un tipo y un valor de banderas, *tp* y *f*, y comprueba si ``tp->tp_flags & " +"f`` no es cero." #: ../Doc/c-api/typeobj.rst:1039 msgid "" @@ -1839,12 +2175,19 @@ msgid "" "instances of subtypes; only the type referenced by the instance's ob_type " "gets INCREF'ed or DECREF'ed)." msgstr "" +"Este bit se establece cuando el objeto de tipo se asigna en el montón, por " +"ejemplo, los tipos creados dinámicamente usando :c:func:`PyType_FromSpec`. " +"En este caso, el campo :attr:`ob_type` de sus instancias se considera una " +"referencia al tipo, y el objeto de tipo se llama *INCREF* cuando se crea una " +"nueva instancia, y DECREF cuando se destruye una instancia (esto hace no se " +"aplica a instancias de subtipos; solo el tipo al que hace referencia el " +"*ob_type* de la instancia obtiene INCREF o DECREF)." #: ../Doc/c-api/typeobj.rst:1049 ../Doc/c-api/typeobj.rst:1060 #: ../Doc/c-api/typeobj.rst:1070 ../Doc/c-api/typeobj.rst:1080 #: ../Doc/c-api/typeobj.rst:1113 msgid "???" -msgstr "" +msgstr "???" #: ../Doc/c-api/typeobj.rst:1054 msgid "" @@ -1852,18 +2195,25 @@ msgid "" "If this bit is clear, the type cannot be subtyped (similar to a \"final\" " "class in Java)." msgstr "" +"Este bit se establece cuando el tipo se puede usar como el tipo base de otro " +"tipo. Si este bit es claro, el tipo no puede subtiparse (similar a una clase " +"\"final\" en Java)." #: ../Doc/c-api/typeobj.rst:1065 msgid "" "This bit is set when the type object has been fully initialized by :c:func:" "`PyType_Ready`." msgstr "" +"Este bit se establece cuando el objeto tipo ha sido completamente " +"inicializado por :c:func:`PyType_Ready`." #: ../Doc/c-api/typeobj.rst:1075 msgid "" "This bit is set while :c:func:`PyType_Ready` is in the process of " "initializing the type object." msgstr "" +"Este bit se establece mientras :c:func:`PyType_Ready` está en el proceso de " +"inicialización del objeto tipo." #: ../Doc/c-api/typeobj.rst:1085 msgid "" @@ -1874,12 +2224,20 @@ msgid "" "fields :c:member:`~PyTypeObject.tp_traverse` and :c:member:`~PyTypeObject." "tp_clear` are present in the type object." msgstr "" +"Este bit se establece cuando el objeto admite la recolección de elementos no " +"utilizados. Si se establece este bit, las instancias deben crearse usando :c:" +"func:`PyObject_GC_New` y destruirse usando :c:func:`PyObject_GC_Del`. Más " +"información en la sección :ref:`Support-Cycle-Detection`. Este bit también " +"implica que los campos relacionados con GC :c:member:`~PyTypeObject." +"tp_traverse` y :c:member:`~PyTypeObject.tp_clear` están presentes en el " +"objeto de tipo." #: ../Doc/c-api/typeobj.rst:1094 ../Doc/c-api/typeobj.rst:1259 #: ../Doc/c-api/typeobj.rst:1320 msgid "" "Group: :const:`Py_TPFLAGS_HAVE_GC`, :attr:`tp_traverse`, :attr:`tp_clear`" msgstr "" +"Grupo: :const:`Py_TPFLAGS_HAVE_GC`, :attr:`tp_traverse`, :attr:`tp_clear`" #: ../Doc/c-api/typeobj.rst:1096 msgid "" @@ -1889,6 +2247,11 @@ msgid "" "`tp_traverse` and :attr:`tp_clear` fields in the subtype exist and have " "``NULL`` values." msgstr "" +"El bit de indicador :const:`Py_TPFLAGS_HAVE_GC` se hereda junto con los " +"campos :attr:`tp_traverse` y :attr:`tp_clear`, es decir, si el bit de " +"indicador :const:`Py_TPFLAGS_HAVE_GC` está claro en el subtipo y los campos :" +"attr:`tp_traverse` y :attr:`tp_clear` en el subtipo existen y tienen valores " +"``NULL``." #: ../Doc/c-api/typeobj.rst:1106 msgid "" @@ -1897,26 +2260,35 @@ msgid "" "includes the following bits: :const:`Py_TPFLAGS_HAVE_STACKLESS_EXTENSION`, :" "const:`Py_TPFLAGS_HAVE_VERSION_TAG`." msgstr "" +"Esta es una máscara de bits de todos los bits que pertenecen a la existencia " +"de ciertos campos en el objeto tipo y sus estructuras de extensión. " +"Actualmente, incluye los siguientes bits: :const:" +"`Py_TPFLAGS_HAVE_STACKLESS_EXTENSION`, :const:`Py_TPFLAGS_HAVE_VERSION_TAG`." #: ../Doc/c-api/typeobj.rst:1118 msgid "This bit indicates that objects behave like unbound methods." msgstr "" +"Este bit indica que los objetos se comportan como métodos independientes." #: ../Doc/c-api/typeobj.rst:1120 msgid "If this flag is set for ``type(meth)``, then:" -msgstr "" +msgstr "Si este indicador está configurado para ``type(meth)``, entonces:" #: ../Doc/c-api/typeobj.rst:1122 msgid "" "``meth.__get__(obj, cls)(*args, **kwds)`` (with ``obj`` not None) must be " "equivalent to ``meth(obj, *args, **kwds)``." msgstr "" +"``meth.__get__(obj, cls)(*args, **kwds)`` (con ``obj`` no ``None``) debe ser " +"equivalente a ``meth(obj, *args, **kwds)``." #: ../Doc/c-api/typeobj.rst:1125 msgid "" "``meth.__get__(None, cls)(*args, **kwds)`` must be equivalent to " "``meth(*args, **kwds)``." msgstr "" +"``meth.__get__(None, cls)(*args, **kwds)`` debe ser equivalente a " +"``meth(*args, **kwds)``." #: ../Doc/c-api/typeobj.rst:1128 msgid "" @@ -1924,12 +2296,18 @@ msgid "" "meth()``: it avoids creating a temporary \"bound method\" object for ``obj." "meth``." msgstr "" +"Este indicador (*flag*) permite una optimización para llamadas a métodos " +"típicos como ``obj.meth()``: evita crear un objeto temporal de \"método " +"vinculado\" para ``obj.meth``." #: ../Doc/c-api/typeobj.rst:1136 msgid "" "This flag is never inherited by heap types. For extension types, it is " "inherited whenever :c:member:`~PyTypeObject.tp_descr_get` is inherited." msgstr "" +"Este indicador (*flag*) nunca es heredada por los tipos de montón. Para los " +"tipos de extensión, se hereda siempre que :c:member:`~PyTypeObject." +"tp_descr_get` se hereda." #: ../Doc/c-api/typeobj.rst:1153 msgid "" @@ -1940,24 +2318,39 @@ msgid "" "tp_flags` set appropriately, or the code that interacts with such types will " "behave differently depending on what kind of check is used." msgstr "" +"Estas marcas son utilizadas por funciones como :c:func:`PyLong_Check` para " +"determinar rápidamente si un tipo es una subclase de un tipo incorporado; " +"dichos controles específicos son más rápidos que un control genérico, como :" +"c:func:`PyObject_IsInstance`. Los tipos personalizados que heredan de los " +"elementos integrados deben tener su :c:member:`~PyTypeObject.tp_flags` " +"configurado correctamente, o el código que interactúa con dichos tipos se " +"comportará de manera diferente dependiendo del tipo de verificación que se " +"use." #: ../Doc/c-api/typeobj.rst:1164 msgid "" "This bit is set when the :c:member:`~PyTypeObject.tp_finalize` slot is " "present in the type structure." msgstr "" +"Este bit se establece cuando la ranura :c:member:`~PyTypeObject.tp_finalize` " +"está presente en la estructura de tipo." #: ../Doc/c-api/typeobj.rst:1169 msgid "" "This flag isn't necessary anymore, as the interpreter assumes the :c:member:" "`~PyTypeObject.tp_finalize` slot is always present in the type structure." msgstr "" +"Este indicador ya no es necesario, ya que el intérprete asume que: el " +"espacio :c:member:`~PyTypeObject.tp_finalize` siempre está presente en la " +"estructura de tipos." #: ../Doc/c-api/typeobj.rst:1176 msgid "" "This bit is set when the class implements the vectorcall protocol. See :c:" "member:`~PyTypeObject.tp_vectorcall_offset` for details." msgstr "" +"Este bit se establece cuando la clase implementa el protocolo *vectorcall*. " +"Ver :c:member:`~PyTypeObject.tp_vectorcall_offset` para más detalles." #: ../Doc/c-api/typeobj.rst:1181 msgid "" @@ -1966,10 +2359,16 @@ msgid "" "subtype’s :c:member:`~PyTypeObject.tp_call` is ``NULL`` and the subtype's " "``Py_TPFLAGS_HEAPTYPE`` is not set." msgstr "" +"Este bit se establece en los subtipos *static* si ``tp_flags`` no se " +"reemplaza: un subtipo hereda ``_Py_TPFLAGS_HAVE_VECTORCALL`` de su tipo base " +"cuando el subtipo :c:member:`~PyTypeObject.tp_call` es ``NULL`` y el subtipo " +"``Py_TPFLAGS_HEAPTYPE`` no está establecido." #: ../Doc/c-api/typeobj.rst:1186 msgid "`Heap types`_ do not inherit ``_Py_TPFLAGS_HAVE_VECTORCALL``." msgstr "" +"\"Tipos montículo\" (`Heap types`_) no heredan " +"``_Py_TPFLAGS_HAVE_VECTORCALL``." #: ../Doc/c-api/typeobj.rst:1190 msgid "" @@ -1977,6 +2376,9 @@ msgid "" "different name and, possibly, changed semantics. If you use vectorcall, plan " "for updating your code for Python 3.9." msgstr "" +"Este indicador (*flag*) es provisional y se espera que se haga pública en " +"Python 3.9, con un nombre diferente y, posiblemente, una semántica cambiada. " +"Si usa *vectorcall*, planifique actualizar su código para Python 3.9." #: ../Doc/c-api/typeobj.rst:1199 msgid "" @@ -1984,10 +2386,13 @@ msgid "" "this type object. This is exposed as the :attr:`__doc__` attribute on the " "type and instances of the type." msgstr "" +"Un puntero opcional a una cadena de caracteres de C terminada en ``NULL`` " +"que proporciona la cadena de documentación para este tipo de objeto. Esto se " +"expone como el atributo :attr:`__doc__` en el tipo y las instancias del tipo." #: ../Doc/c-api/typeobj.rst:1205 msgid "This field is *not* inherited by subtypes." -msgstr "" +msgstr "Este campo es *no* heredado por los subtipos." #: ../Doc/c-api/typeobj.rst:1210 msgid "" @@ -1995,12 +2400,17 @@ msgid "" "is only used if the :const:`Py_TPFLAGS_HAVE_GC` flag bit is set. The " "signature is::" msgstr "" +"Un puntero opcional a una función transversal para el recolector de basura. " +"Esto solo se usa si se establece el bit de la bandera (*flag*) :const:" +"`Py_TPFLAGS_HAVE_GC`. La firma es::" #: ../Doc/c-api/typeobj.rst:1215 ../Doc/c-api/typeobj.rst:1315 msgid "" "More information about Python's garbage collection scheme can be found in " "section :ref:`supporting-cycle-detection`." msgstr "" +"Se puede encontrar más información sobre el esquema de recolección de basura " +"de Python en la sección :ref:`support-cycle-detection`." #: ../Doc/c-api/typeobj.rst:1218 msgid "" @@ -2011,6 +2421,12 @@ msgid "" "owns. For example, this is function :c:func:`local_traverse` from the :mod:" "`_thread` extension module::" msgstr "" +"El puntero :c:member:`~PyTypeObject.tp_traverse` es utilizado por el " +"recolector de basura para detectar ciclos de referencia. Una implementación " +"típica de un :c:member:`~PyTypeObject.tp_traverse` simplemente llama a :c:" +"func:`Py_VISIT` en cada uno de los miembros de la instancia que son objetos " +"de Python que posee la instancia. Por ejemplo, esta es la función :c:func:" +"`local_traverse` del módulo de extensión :mod:`_thread`::" #: ../Doc/c-api/typeobj.rst:1233 msgid "" @@ -2019,6 +2435,10 @@ msgid "" "member, it can only be ``NULL`` or a Python string and therefore cannot be " "part of a reference cycle." msgstr "" +"Tenga en cuenta que :c:func:`Py_VISIT` solo se llama a aquellos miembros que " +"pueden participar en los ciclos de referencia. Aunque también hay un miembro " +"``self->key``, solo puede ser ``NULL`` o una cadena de caracteres de Python " +"y, por lo tanto, no puede ser parte de un ciclo de referencia." #: ../Doc/c-api/typeobj.rst:1237 msgid "" @@ -2026,6 +2446,10 @@ msgid "" "as a debugging aid you may want to visit it anyway just so the :mod:`gc` " "module's :func:`~gc.get_referents` function will include it." msgstr "" +"Por otro lado, incluso si sabe que un miembro nunca puede ser parte de un " +"ciclo, como ayuda para la depuración puede visitarlo de todos modos solo " +"para que la función :func:`~gc.get_referents` del módulo :mod:`gc` lo " +"incluirá." #: ../Doc/c-api/typeobj.rst:1242 msgid "" @@ -2039,6 +2463,16 @@ msgid "" "strong reference to the elements inside it, as they are allowed to be " "removed even if the instance is still alive)." msgstr "" +"Al implementar :c:member:`~PyTypeObject.tp_traverse`, solo se deben visitar " +"los miembros que *posee* la instancia (al tener fuertes referencias a " +"ellos). Por ejemplo, si un objeto admite referencias débiles a través de la " +"ranura :c:member:`~PyTypeObject.tp_weaklist`, el puntero que admite la lista " +"vinculada (a lo que *tp_weaklist* señala) **no** debe ser visitado como la " +"instancia no posee directamente las referencias débiles a sí mismo (la lista " +"de referencias débiles está ahí para admitir la maquinaria de referencia " +"débil, pero la instancia no tiene una referencia fuerte a los elementos " +"dentro de ella, ya que se puede eliminar incluso si la instancia aún está " +"viva)." #: ../Doc/c-api/typeobj.rst:1253 msgid "" @@ -2046,6 +2480,9 @@ msgid "" "func:`local_traverse` to have these specific names; don't name them just " "anything." msgstr "" +"Tenga en cuenta que :c:func:`Py_VISIT` requiere los parámetros *visit* y " +"*arg* para :c:func:`local_traverse` para tener estos nombres específicos; no " +"les llames de ninguna manera." #: ../Doc/c-api/typeobj.rst:1261 msgid "" @@ -2054,6 +2491,10 @@ msgid "" "member:`~PyTypeObject.tp_traverse`, and :c:member:`~PyTypeObject.tp_clear` " "are all inherited from the base type if they are all zero in the subtype." msgstr "" +"Este campo es heredado por los subtipos junto con :c:member:`~PyTypeObject." +"tp_clear` y el :const:`Py_TPFLAGS_HAVE_GC` bit de bandera: el bit de " +"bandera, :c:member:`~PyTypeObject.tp_traverse`, y :c:miembro:`~PyTypeObject." +"tp_clear` se heredan todos del tipo base si todos son cero en el subtipo." #: ../Doc/c-api/typeobj.rst:1269 msgid "" @@ -2061,6 +2502,9 @@ msgid "" "only used if the :const:`Py_TPFLAGS_HAVE_GC` flag bit is set. The signature " "is::" msgstr "" +"Un puntero opcional a una función de limpieza (*clear function*) para el " +"recolector de basura. Esto solo se usa si se establece el bit de bandera :" +"const:`Py_TPFLAGS_HAVE_GC`. La firma es::" #: ../Doc/c-api/typeobj.rst:1274 msgid "" @@ -2076,6 +2520,18 @@ msgid "" "containing a tuple. This isn't immediately obvious, and there's rarely a " "good reason to avoid implementing :c:member:`~PyTypeObject.tp_clear`." msgstr "" +"La función miembro :c:member:`~PyTypeObject.tp_clear` se usa para romper los " +"ciclos de referencia en la basura cíclica detectada por el recolector de " +"basura. En conjunto, todas las funciones :c:member:`~PyTypeObject.tp_clear` " +"en el sistema deben combinarse para romper todos los ciclos de referencia. " +"Esto es sutil y, en caso de duda, proporcione una función :c:member:" +"`~PyTypeObject.tp_clear`. Por ejemplo, el tipo de tupla no implementa una " +"función :c:member:`~PyTypeObject.tp_clear`, porque es posible demostrar que " +"ningún ciclo de referencia puede estar compuesto completamente de tuplas. " +"Por lo tanto, las funciones :c:member:`~PyTypeObject.tp_clear` de otros " +"tipos deben ser suficientes para romper cualquier ciclo que contenga una " +"tupla. Esto no es inmediatamente obvio, y rara vez hay una buena razón para " +"evitar la implementación de :c:member:`~PyTypeObject.tp_clear`." #: ../Doc/c-api/typeobj.rst:1284 msgid "" @@ -2084,6 +2540,10 @@ msgid "" "and set its pointers to those members to ``NULL``, as in the following " "example::" msgstr "" +"Las implementaciones de :c:member:`~PyTypeObject.tp_clear` deberían " +"descartar las referencias de la instancia a las de sus miembros que pueden " +"ser objetos de Python, y establecer sus punteros a esos miembros en " +"``NULL``, como en el siguiente ejemplo::" #: ../Doc/c-api/typeobj.rst:1298 msgid "" @@ -2099,6 +2559,18 @@ msgid "" "can no longer be used. The :c:func:`Py_CLEAR` macro performs the operations " "in a safe order." msgstr "" +"Se debe utilizar el macro :c:func:`Py_CLEAR`, porque borrar las referencias " +"es delicado: la referencia al objeto contenido no se debe disminuir hasta " +"después de que el puntero al objeto contenido se establezca en ``NULL``. " +"Esto se debe a que la disminución del conteo de referencias puede hacer que " +"el objeto contenido se convierta en basura, lo que desencadena una cadena de " +"actividad de recuperación que puede incluir la invocación de código " +"arbitrario de Python (debido a finalizadores o devoluciones de llamada de " +"reflujo débil, asociadas con el objeto contenido). Si es posible que dicho " +"código haga referencia a *self* nuevamente, es importante que el puntero al " +"objeto contenido sea ``NULL`` en ese momento, de modo que *self* sepa que el " +"objeto contenido ya no se puede usar. El macro :c:func:`Py_CLEAR` realiza " +"las operaciones en un orden seguro." #: ../Doc/c-api/typeobj.rst:1309 msgid "" @@ -2109,6 +2581,12 @@ msgid "" "and write the type's :c:member:`~PyTypeObject.tp_dealloc` function to " "invoke :c:member:`~PyTypeObject.tp_clear`." msgstr "" +"Debido a que el objetivo de :c:member:`~PyTypeObject.tp_clear` es romper los " +"ciclos de referencia, no es necesario borrar objetos contenidos como cadenas " +"de caracteres de Python o enteros de Python, que no pueden participar en los " +"ciclos de referencia. Por otro lado, puede ser conveniente borrar todos los " +"objetos Python contenidos y escribir la función :c:member:`~PyTypeObject." +"tp_dealloc` para invocar :c:member:`~PyTypeObject.tp_clear`." #: ../Doc/c-api/typeobj.rst:1322 msgid "" @@ -2117,17 +2595,24 @@ msgid "" "member:`~PyTypeObject.tp_traverse`, and :c:member:`~PyTypeObject.tp_clear` " "are all inherited from the base type if they are all zero in the subtype." msgstr "" +"Este campo es heredado por subtipos junto con :c:member:`~PyTypeObject." +"tp_traverse` y el :const:`Py_TPFLAGS_HAVE_GC` bit de bandera: el bit de " +"bandera, :c:member:`~PyTypeObject.tp_traverse`, y :c:miembro:`~PyTypeObject." +"tp_clear` se heredan todos del tipo base si todos son cero en el subtipo." #: ../Doc/c-api/typeobj.rst:1330 msgid "" "An optional pointer to the rich comparison function, whose signature is::" msgstr "" +"Un puntero opcional a la función de comparación enriquecida, cuya firma es::" #: ../Doc/c-api/typeobj.rst:1334 msgid "" "The first parameter is guaranteed to be an instance of the type that is " "defined by :c:type:`PyTypeObject`." msgstr "" +"Se garantiza que el primer parámetro será una instancia del tipo definido " +"por :c:type:`PyTypeObject`." #: ../Doc/c-api/typeobj.rst:1337 msgid "" @@ -2136,73 +2621,82 @@ msgid "" "``Py_NotImplemented``, if another error occurred it must return ``NULL`` and " "set an exception condition." msgstr "" +"La función debería retornar el resultado de la comparación (generalmente " +"``Py_True`` o ``Py_False``). Si la comparación no está definida, debe " +"retornar ``Py_NotImplemented``, si se produce otro error, debe retornar " +"``NULL`` y establecer una condición de excepción." #: ../Doc/c-api/typeobj.rst:1342 msgid "" "The following constants are defined to be used as the third argument for :c:" "member:`~PyTypeObject.tp_richcompare` and for :c:func:`PyObject_RichCompare`:" msgstr "" +"Las siguientes constantes se definen para ser utilizadas como el tercer " +"argumento para :c:member:`~PyTypeObject.tp_richcompare` y para :c:func:" +"`PyObject_RichCompare`:" #: ../Doc/c-api/typeobj.rst:1346 msgid "Constant" -msgstr "" +msgstr "Constante" #: ../Doc/c-api/typeobj.rst:1346 msgid "Comparison" -msgstr "" +msgstr "Comparación" #: ../Doc/c-api/typeobj.rst:1348 msgid ":const:`Py_LT`" -msgstr "" +msgstr ":const:`Py_LT`" #: ../Doc/c-api/typeobj.rst:1348 msgid "``<``" -msgstr "" +msgstr "``<``" #: ../Doc/c-api/typeobj.rst:1350 msgid ":const:`Py_LE`" -msgstr "" +msgstr ":const:`Py_LE`" #: ../Doc/c-api/typeobj.rst:1350 msgid "``<=``" -msgstr "" +msgstr "``<=``" #: ../Doc/c-api/typeobj.rst:1352 msgid ":const:`Py_EQ`" -msgstr "" +msgstr ":const:`Py_EQ`" #: ../Doc/c-api/typeobj.rst:1352 msgid "``==``" -msgstr "" +msgstr "``==``" #: ../Doc/c-api/typeobj.rst:1354 msgid ":const:`Py_NE`" -msgstr "" +msgstr ":const:`Py_NE`" #: ../Doc/c-api/typeobj.rst:1354 msgid "``!=``" -msgstr "" +msgstr "``!=``" #: ../Doc/c-api/typeobj.rst:1356 msgid ":const:`Py_GT`" -msgstr "" +msgstr ":const:`Py_GT`" #: ../Doc/c-api/typeobj.rst:1356 msgid "``>``" -msgstr "" +msgstr "``>``" #: ../Doc/c-api/typeobj.rst:1358 msgid ":const:`Py_GE`" -msgstr "" +msgstr ":const:`Py_GE`" #: ../Doc/c-api/typeobj.rst:1358 msgid "``>=``" -msgstr "" +msgstr "``>=``" #: ../Doc/c-api/typeobj.rst:1361 msgid "" "The following macro is defined to ease writing rich comparison functions:" msgstr "" +"El siguiente macro está definido para facilitar la escritura de funciones de " +"comparación enriquecidas:" #: ../Doc/c-api/typeobj.rst:1365 msgid "" @@ -2211,14 +2705,21 @@ msgid "" "operators (for example, they may be C ints or floats). The third argument " "specifies the requested operation, as for :c:func:`PyObject_RichCompare`." msgstr "" +"Retorna ``Py_True`` o ``Py_False`` de la función, según el resultado de una " +"comparación. ``VAL_A`` y ``VAL_B`` deben ser ordenados por operadores de " +"comparación C (por ejemplo, pueden ser enteros o punto flotantes de C). El " +"tercer argumento especifica la operación solicitada, como por ejemplo :c:" +"func:`PyObject_RichCompare`." #: ../Doc/c-api/typeobj.rst:1371 msgid "The return value's reference count is properly incremented." msgstr "" +"El conteo de referencia del valor de retorno se incrementa correctamente." #: ../Doc/c-api/typeobj.rst:1373 msgid "On error, sets an exception and returns ``NULL`` from the function." msgstr "" +"En caso de error, establece una excepción y retorna ``NULL`` de la función." #: ../Doc/c-api/typeobj.rst:1381 msgid "" @@ -2227,6 +2728,10 @@ msgid "" "member:`~PyTypeObject.tp_hash` when the subtype's :c:member:`~PyTypeObject." "tp_richcompare` and :c:member:`~PyTypeObject.tp_hash` are both ``NULL``." msgstr "" +"Este campo es heredado por subtipos junto con :c:member:`~PyTypeObject." +"tp_hash`: un subtipo hereda :c:member:`~PyTypeObject.tp_richcompare` y :c:" +"member:`~PyTypeObject.tp_hash` cuando el subtipo :c:member:`~PyTypeObject." +"tp_richcompare` y :c:member:`~PyTypeObject.tp_hash` son ambos ``NULL``." #: ../Doc/c-api/typeobj.rst:1388 msgid "" @@ -2235,6 +2740,10 @@ msgid "" "defined, not even the inherited function is used and instances of the type " "will not be able to participate in any comparisons." msgstr "" +":c:type:`PyBaseObject_Type` proporciona una implementación :attr:" +"`tp_richcompare`, que puede ser heredada. Sin embargo, si solo se define :" +"attr:`tp_hash`, ni siquiera se utiliza la función heredada y las instancias " +"del tipo no podrán participar en ninguna comparación." #: ../Doc/c-api/typeobj.rst:1397 msgid "" @@ -2245,12 +2754,21 @@ msgid "" "functions. The instance structure needs to include a field of type :c:type:" "`PyObject\\*` which is initialized to ``NULL``." msgstr "" +"Si las instancias de este tipo son débilmente referenciables, este campo es " +"mayor que cero y contiene el desplazamiento en la estructura de instancias " +"del encabezado de la lista de referencia débil (ignorando el encabezado del " +"GC, si está presente); este desplazamiento es utilizado por :c:func:" +"`PyObject_ClearWeakRefs` y las funciones :c:func:`PyWeakref_\\*`. La " +"estructura de la instancia debe incluir un campo de tipo :c:type:`PyObject" +"\\*` que se inicializa a ``NULL``." #: ../Doc/c-api/typeobj.rst:1404 msgid "" "Do not confuse this field with :c:member:`~PyTypeObject.tp_weaklist`; that " "is the list head for weak references to the type object itself." msgstr "" +"No confunda este campo con :c:member:`~PyTypeObject.tp_weaklist`; ese es el " +"encabezado de la lista para referencias débiles al objeto de tipo en sí." #: ../Doc/c-api/typeobj.rst:1409 msgid "" @@ -2260,6 +2778,12 @@ msgid "" "is always found via :c:member:`~PyTypeObject.tp_weaklistoffset`, this should " "not be a problem." msgstr "" +"Este campo es heredado por subtipos, pero consulte las reglas que se " +"enumeran a continuación. Un subtipo puede anular este desplazamiento; Esto " +"significa que el subtipo utiliza un encabezado de lista de referencia débil " +"diferente que el tipo base. Dado que el encabezado de la lista siempre se " +"encuentra a través de :c:member:`~PyTypeObject.tp_weaklistoffset`, esto no " +"debería ser un problema." #: ../Doc/c-api/typeobj.rst:1414 msgid "" @@ -2269,6 +2793,12 @@ msgid "" "the instance layout and setting the :c:member:`~PyTypeObject." "tp_weaklistoffset` of that slot's offset." msgstr "" +"Cuando un tipo definido por una declaración de clase no tiene :attr:`~object." +"__slots__` declaración, y ninguno de sus tipos base es débilmente " +"referenciable, el tipo se hace débilmente referenciable al agregar una " +"ranura de encabezado de lista de referencia débil al diseño de la instancia " +"y configurando :c:member:`~PyTypeObject.tp_weaklistoffset` del " +"desplazamiento de esa ranura." #: ../Doc/c-api/typeobj.rst:1419 msgid "" @@ -2277,6 +2807,11 @@ msgid "" "of the type, and the slot's offset is stored in the type's :c:member:" "`~PyTypeObject.tp_weaklistoffset`." msgstr "" +"Cuando la declaración de un tipo :attr:`__slots__` contiene un espacio " +"llamado :attr:`__weakref__`, ese espacio se convierte en el encabezado de la " +"lista de referencia débil para las instancias del tipo, y el desplazamiento " +"del espacio se almacena en el tipo :c:member:`~PyTypeObject." +"tp_weaklistoffset`." #: ../Doc/c-api/typeobj.rst:1424 msgid "" @@ -2284,6 +2819,9 @@ msgid "" "attr:`__weakref__`, the type inherits its :c:member:`~PyTypeObject." "tp_weaklistoffset` from its base type." msgstr "" +"Cuando la declaración de un tipo :attr:`__slots__` no contiene un espacio " +"llamado :attr:`__weakref__`, el tipo hereda su :c:member:`~PyTypeObject." +"tp_weaklistoffset` de su tipo base." #: ../Doc/c-api/typeobj.rst:1431 msgid "" @@ -2291,16 +2829,21 @@ msgid "" "Its presence normally signals that the instances of this type are iterable " "(although sequences may be iterable without this function)." msgstr "" +"Un puntero opcional a una función que retorna un iterador para el objeto. Su " +"presencia normalmente indica que las instancias de este tipo son iterables " +"(aunque las secuencias pueden ser iterables sin esta función)." #: ../Doc/c-api/typeobj.rst:1435 msgid "This function has the same signature as :c:func:`PyObject_GetIter`::" -msgstr "" +msgstr "Esta función tiene la misma firma que :c:func:`PyObject_GetIter`::" #: ../Doc/c-api/typeobj.rst:1446 msgid "" "An optional pointer to a function that returns the next item in an iterator. " "The signature is::" msgstr "" +"Un puntero opcional a una función que retorna el siguiente elemento en un " +"iterador. La firma es::" #: ../Doc/c-api/typeobj.rst:1451 msgid "" @@ -2309,6 +2852,10 @@ msgid "" "it must return ``NULL`` too. Its presence signals that the instances of " "this type are iterators." msgstr "" +"Cuando el iterador está agotado, debe devolver ``NULL``; a la excepción :exc:" +"`StopIteration` puede o no establecerse. Cuando se produce otro error, " +"también debe devolver ``NULL``. Su presencia indica que las instancias de " +"este tipo son iteradores." #: ../Doc/c-api/typeobj.rst:1456 msgid "" @@ -2316,28 +2863,38 @@ msgid "" "function, and that function should return the iterator instance itself (not " "a new iterator instance)." msgstr "" +"Los tipos de iterador también deberían definir la función :c:member:" +"`~PyTypeObject.tp_iter`, y esa función debería devolver la instancia de " +"iterador en sí (no una nueva instancia de iterador)." #: ../Doc/c-api/typeobj.rst:1460 msgid "This function has the same signature as :c:func:`PyIter_Next`." -msgstr "" +msgstr "Esta función tiene la misma firma que :c:func:`PyIter_Next`." #: ../Doc/c-api/typeobj.rst:1469 msgid "" "An optional pointer to a static ``NULL``-terminated array of :c:type:" "`PyMethodDef` structures, declaring regular methods of this type." msgstr "" +"Un puntero opcional a un arreglo estático terminado en ``NULL`` de " +"estructuras :c:type:`PyMethodDef`, declarando métodos regulares de este tipo." #: ../Doc/c-api/typeobj.rst:1472 msgid "" "For each entry in the array, an entry is added to the type's dictionary " "(see :c:member:`~PyTypeObject.tp_dict` below) containing a method descriptor." msgstr "" +"Para cada entrada en el arreglo, se agrega una entrada al diccionario del " +"tipo (ver :c:member:`~PyTypeObject.tp_dict` a continuación) que contiene un " +"descriptor *method*." #: ../Doc/c-api/typeobj.rst:1477 msgid "" "This field is not inherited by subtypes (methods are inherited through a " "different mechanism)." msgstr "" +"Los subtipos no heredan este campo (los métodos se heredan mediante un " +"mecanismo diferente)." #: ../Doc/c-api/typeobj.rst:1483 msgid "" @@ -2345,18 +2902,26 @@ msgid "" "`PyMemberDef` structures, declaring regular data members (fields or slots) " "of instances of this type." msgstr "" +"Un puntero opcional a un arreglo estático terminado en ``NULL`` de " +"estructuras :c:type:`PyMemberDef`, declarando miembros de datos regulares " +"(campos o ranuras) de instancias de este tipo." #: ../Doc/c-api/typeobj.rst:1487 msgid "" "For each entry in the array, an entry is added to the type's dictionary " "(see :c:member:`~PyTypeObject.tp_dict` below) containing a member descriptor." msgstr "" +"Para cada entrada en el arreglo, se agrega una entrada al diccionario del " +"tipo (ver :c:member:`~PyTypeObject.tp_dict` a continuación) que contiene un " +"descriptor *member*." #: ../Doc/c-api/typeobj.rst:1492 msgid "" "This field is not inherited by subtypes (members are inherited through a " "different mechanism)." msgstr "" +"Los subtipos no heredan este campo (los miembros se heredan mediante un " +"mecanismo diferente)." #: ../Doc/c-api/typeobj.rst:1498 msgid "" @@ -2364,18 +2929,26 @@ msgid "" "`PyGetSetDef` structures, declaring computed attributes of instances of this " "type." msgstr "" +"Un puntero opcional a un arreglo estático terminado en ``NULL`` de " +"estructuras :c:type:`PyGetSetDef`, declarando atributos calculados de " +"instancias de este tipo." #: ../Doc/c-api/typeobj.rst:1501 msgid "" "For each entry in the array, an entry is added to the type's dictionary " "(see :c:member:`~PyTypeObject.tp_dict` below) containing a getset descriptor." msgstr "" +"Para cada entrada en el arreglo, se agrega una entrada al diccionario del " +"tipo (ver :c:member:`~PyTypeObject.tp_dict` a continuación) que contiene un " +"descriptor *getset*." #: ../Doc/c-api/typeobj.rst:1506 msgid "" "This field is not inherited by subtypes (computed attributes are inherited " "through a different mechanism)." msgstr "" +"Este campo no es heredado por los subtipos (los atributos computados se " +"heredan a través de un mecanismo diferente)." #: ../Doc/c-api/typeobj.rst:1512 msgid "" @@ -2384,6 +2957,9 @@ msgid "" "inheritance require dynamically creating a type object by calling the " "metatype." msgstr "" +"Un puntero opcional a un tipo base del que se heredan las propiedades de " +"tipo. En este nivel, solo se admite una herencia única; La herencia múltiple " +"requiere la creación dinámica de un objeto tipo llamando al metatipo." #: ../Doc/c-api/typeobj.rst:1520 msgid "" @@ -2392,6 +2968,10 @@ msgid "" "like :c:func:`PyType_GenericNew`, with implicit conversion to a pointer, are " "valid C99 address constants." msgstr "" +"La inicialización de ranuras está sujeta a las reglas de inicialización de " +"globales. C99 requiere que los inicializadores sean \"constantes de dirección" +"\". Los designadores de funciones como :c:func:`PyType_GenericNew`, con " +"conversión implícita a un puntero, son constantes de dirección C99 válidas." #: ../Doc/c-api/typeobj.rst:1525 msgid "" @@ -2400,26 +2980,35 @@ msgid "" "Compilers may support this (gcc does), MSVC does not. Both compilers are " "strictly standard conforming in this particular behavior." msgstr "" +"Sin embargo, el operador unario '&' aplicado a una variable no estática " +"como :c:func:`PyBaseObject_Type` no es necesario para producir una dirección " +"constante. Los compiladores pueden admitir esto (gcc lo hace), MSVC no. " +"Ambos compiladores son estrictamente estándar conforme a este comportamiento " +"particular." #: ../Doc/c-api/typeobj.rst:1531 msgid "" "Consequently, :c:member:`~PyTypeObject.tp_base` should be set in the " "extension module's init function." msgstr "" +"En consecuencia, :c:member:`~PyTypeObject.tp_base` debe establecerse en la " +"función *init* del módulo de extensión." #: ../Doc/c-api/typeobj.rst:1536 msgid "This field is not inherited by subtypes (obviously)." -msgstr "" +msgstr "Este campo no es heredado por los subtipos (obviamente)." #: ../Doc/c-api/typeobj.rst:1540 msgid "" "This field defaults to ``&PyBaseObject_Type`` (which to Python programmers " "is known as the type :class:`object`)." msgstr "" +"Este campo predeterminado es ``&PyBaseObject_Type`` (que para los " +"programadores de Python se conoce como el tipo :class:`objeto`)." #: ../Doc/c-api/typeobj.rst:1546 msgid "The type's dictionary is stored here by :c:func:`PyType_Ready`." -msgstr "" +msgstr "El diccionario del tipo se almacena aquí por :c:func:`PyType_Ready`." #: ../Doc/c-api/typeobj.rst:1548 msgid "" @@ -2429,44 +3018,59 @@ msgid "" "type, extra attributes for the type may be added to this dictionary only if " "they don't correspond to overloaded operations (like :meth:`__add__`)." msgstr "" +"Este campo normalmente debe inicializarse a ``NULL`` antes de llamar a " +"``PyType_Ready``; también se puede inicializar en un diccionario que " +"contiene atributos iniciales para el tipo. Una vez :c:func:`PyType_Ready` ha " +"inicializado el tipo, los atributos adicionales para el tipo pueden " +"agregarse a este diccionario solo si no corresponden a operaciones " +"sobrecargadas (como :meth:`__add__`)." #: ../Doc/c-api/typeobj.rst:1556 msgid "" "This field is not inherited by subtypes (though the attributes defined in " "here are inherited through a different mechanism)." msgstr "" +"Este campo no es heredado por los subtipos (aunque los atributos definidos " +"aquí se heredan a través de un mecanismo diferente)." #: ../Doc/c-api/typeobj.rst:1561 msgid "" "If this field is ``NULL``, :c:func:`PyType_Ready` will assign a new " "dictionary to it." msgstr "" +"Si este campo es ``NULL``, :c:func:`PyType_Ready` le asignará un nuevo " +"diccionario." #: ../Doc/c-api/typeobj.rst:1566 msgid "" "It is not safe to use :c:func:`PyDict_SetItem` on or otherwise modify :c:" "member:`~PyTypeObject.tp_dict` with the dictionary C-API." msgstr "" +"No es seguro usar :c:func:`PyDict_SetItem` en o modificar de otra manera a :" +"c:member:`~PyTypeObject.tp_dict` con el diccionario C-API." #: ../Doc/c-api/typeobj.rst:1572 msgid "An optional pointer to a \"descriptor get\" function." msgstr "" +"Un puntero opcional a una función \"obtener descriptor\" (*descriptor ger*)." #: ../Doc/c-api/typeobj.rst:1574 ../Doc/c-api/typeobj.rst:1590 #: ../Doc/c-api/typeobj.rst:1672 ../Doc/c-api/typeobj.rst:1702 #: ../Doc/c-api/typeobj.rst:1726 msgid "The function signature is::" -msgstr "" +msgstr "La firma de la función es::" #: ../Doc/c-api/typeobj.rst:1587 msgid "" "An optional pointer to a function for setting and deleting a descriptor's " "value." msgstr "" +"Un puntero opcional a una función para configurar y eliminar el valor de un " +"descriptor." #: ../Doc/c-api/typeobj.rst:1594 msgid "The *value* argument is set to ``NULL`` to delete the value." -msgstr "" +msgstr "El argumento *value* se establece a ``NULL`` para borrar el valor." #: ../Doc/c-api/typeobj.rst:1605 msgid "" @@ -2475,12 +3079,18 @@ msgid "" "of the type of the instance variable dictionary; this offset is used by :c:" "func:`PyObject_GenericGetAttr`." msgstr "" +"Si las instancias de este tipo tienen un diccionario que contiene variables " +"de instancia, este campo no es cero y contiene el desplazamiento en las " +"instancias del tipo del diccionario de variables de instancia; este " +"desplazamiento es utilizado por :c:func:`PyObject_GenericGetAttr`." #: ../Doc/c-api/typeobj.rst:1610 msgid "" "Do not confuse this field with :c:member:`~PyTypeObject.tp_dict`; that is " "the dictionary for attributes of the type object itself." msgstr "" +"No confunda este campo con :c:member:`~PyTypeObject.tp_dict`; ese es el " +"diccionario para los atributos del tipo de objeto en sí." #: ../Doc/c-api/typeobj.rst:1613 msgid "" @@ -2497,12 +3107,28 @@ msgid "" "tp_dictoffset` should be set to ``-4`` to indicate that the dictionary is at " "the very end of the structure." msgstr "" +"Si el valor de este campo es mayor que cero, especifica el desplazamiento " +"desde el inicio de la estructura de la instancia. Si el valor es menor que " +"cero, especifica el desplazamiento desde el *end* de la estructura de la " +"instancia. Un desplazamiento negativo es más costoso de usar y solo debe " +"usarse cuando la estructura de la instancia contiene una parte de longitud " +"variable. Esto se utiliza, por ejemplo, para agregar un diccionario de " +"variables de instancia a los subtipos de :class:`str` o :class:`tuple`. " +"Tenga en cuenta que el campo :c:member:`~PyTypeObject.tp_basicsize` debe " +"tener en cuenta el diccionario agregado al final en ese caso, aunque el " +"diccionario no esté incluido en el diseño básico del objeto. En un sistema " +"con un tamaño de puntero de 4 bytes, :c:member:`~PyTypeObject.tp_dictoffset` " +"debe establecerse en ``-4`` para indicar que el diccionario está al final de " +"la estructura." #: ../Doc/c-api/typeobj.rst:1625 msgid "" "The real dictionary offset in an instance can be computed from a negative :c:" "member:`~PyTypeObject.tp_dictoffset` as follows::" msgstr "" +"El desplazamiento real del diccionario en una instancia se puede calcular a " +"partir de un elemento negativo :c:member:`~PyTypeObject.tp_dictoffset` de la " +"siguiente manera::" #: ../Doc/c-api/typeobj.rst:1632 msgid "" @@ -2513,6 +3139,12 @@ msgid "" "sign of the number. (There's never a need to do this calculation yourself; " "it is done for you by :c:func:`_PyObject_GetDictPtr`.)" msgstr "" +"donde :c:member:`~PyTypeObject.tp_basicsize`, :c:member:`~PyTypeObject." +"tp_itemsize` y :c:member:`~PyTypeObject.tp_dictoffset` se toman del objeto " +"*type*, y :attr:`ob_size` está tomado de la instancia. Se toma el valor " +"absoluto porque *ints* usa el signo de :attr:`ob_size` para almacenar el " +"signo del número. (Nunca es necesario hacer este cálculo usted mismo; lo " +"hace por usted la función :c:func:`_PyObject_GetDictPtr`.)" #: ../Doc/c-api/typeobj.rst:1640 msgid "" @@ -2522,6 +3154,12 @@ msgid "" "dictionary is always found via :c:member:`~PyTypeObject.tp_dictoffset`, this " "should not be a problem." msgstr "" +"Este campo es heredado por subtipos, pero consulte las reglas que se " +"enumeran a continuación. Un subtipo puede anular este desplazamiento; Esto " +"significa que las instancias de subtipo almacenan el diccionario en un " +"desplazamiento de diferencia que el tipo base. Dado que el diccionario " +"siempre se encuentra a través de :c:member:`~PyTypeObject.tp_dictoffset`, " +"esto no debería ser un problema." #: ../Doc/c-api/typeobj.rst:1645 msgid "" @@ -2530,6 +3168,11 @@ msgid "" "a dictionary slot is added to the instance layout and the :c:member:" "`~PyTypeObject.tp_dictoffset` is set to that slot's offset." msgstr "" +"Cuando un tipo definido por una declaración de clase no tiene :attr:`~object." +"__slots__` declaración, y ninguno de sus tipos base tiene un diccionario de " +"variable de instancia, se agrega un espacio de diccionario al diseño de la " +"instancia y el :c:member:`~PyTypeObject.tp_dictoffset` está configurado para " +"el desplazamiento de esa ranura." #: ../Doc/c-api/typeobj.rst:1650 msgid "" @@ -2537,6 +3180,9 @@ msgid "" "declaration, the type inherits its :c:member:`~PyTypeObject.tp_dictoffset` " "from its base type." msgstr "" +"Cuando un tipo definido por una declaración de clase tiene una declaración :" +"attr:`__slots__`, el tipo hereda su :c:member:`~PyTypeObject.tp_dictoffset` " +"de su tipo base." #: ../Doc/c-api/typeobj.rst:1653 msgid "" @@ -2545,16 +3191,21 @@ msgid "" "Maybe this should be added as a feature just like :attr:`__weakref__` " "though.)" msgstr "" +"(Agrega un espacio llamado :attr:`~object.__dict__` a la declaración :attr:" +"`__slots__` no tiene el efecto esperado, solo causa confusión. Quizás esto " +"debería agregarse como una característica como :attr:`__weakref__` aunque.)" #: ../Doc/c-api/typeobj.rst:1659 msgid "" "This slot has no default. For static types, if the field is ``NULL`` then " "no :attr:`__dict__` gets created for instances." msgstr "" +"Esta ranura no tiene valor predeterminado. Para los tipos estáticos, si el " +"campo es ``NULL``, entonces no :attr:`__dict__` se crea para las instancias." #: ../Doc/c-api/typeobj.rst:1665 msgid "An optional pointer to an instance initialization function." -msgstr "" +msgstr "Un puntero opcional a una función de inicialización de instancia." #: ../Doc/c-api/typeobj.rst:1667 msgid "" @@ -2563,6 +3214,10 @@ msgid "" "`__init__`, and it is possible to reinitialize an instance by calling its :" "meth:`__init__` method again." msgstr "" +"Esta función corresponde al método de clases :meth:`__init__`. Como :meth:" +"`__init__`, es posible crear una instancia sin llamar a :meth:`__init__`, y " +"es posible reinicializar una instancia llamando de nuevo a su método :meth:" +"`__init__`." #: ../Doc/c-api/typeobj.rst:1676 msgid "" @@ -2570,6 +3225,9 @@ msgid "" "arguments represent positional and keyword arguments of the call to :meth:" "`__init__`." msgstr "" +"El argumento propio es la instancia que se debe inicializar; los argumentos " +"*args* y *kwds* representan argumentos posicionales y de palabras clave de " +"la llamada a :meth:`__init__`." #: ../Doc/c-api/typeobj.rst:1680 msgid "" @@ -2582,30 +3240,45 @@ msgid "" "tp_new` returns an instance of a subtype of the original type, the " "subtype's :c:member:`~PyTypeObject.tp_init` is called." msgstr "" +"La función :c:member:`~PyTypeObject.tp_init`, si no es ``NULL``, se llama " +"cuando una instancia se crea normalmente llamando a su tipo, después de la " +"función :c:member:`~PyTypeObject.tp_new` del tipo ha retornado una instancia " +"del tipo. Si la función :c:member:`~PyTypeObject.tp_new` retorna una " +"instancia de otro tipo que no es un subtipo del tipo original, no se llama " +"la función :c:member:`~PyTypeObject.tp_init`; if :c:member:`~PyTypeObject." +"tp_new` devuelve una instancia de un subtipo del tipo original, se llama al " +"subtipo :c:member:`~PyTypeObject.tp_init`." #: ../Doc/c-api/typeobj.rst:1687 msgid "Returns ``0`` on success, ``-1`` and sets an exception on error." msgstr "" +"Retorna ``0`` en caso de éxito, ``-1`` y establece una excepción en caso de " +"error." #: ../Doc/c-api/typeobj.rst:1695 msgid "For static types this field does not have a default." -msgstr "" +msgstr "Para los tipos estáticos, este campo no tiene un valor predeterminado." #: ../Doc/c-api/typeobj.rst:1700 msgid "An optional pointer to an instance allocation function." -msgstr "" +msgstr "Un puntero opcional a una función de asignación de instancia." #: ../Doc/c-api/typeobj.rst:1708 msgid "" "This field is inherited by static subtypes, but not by dynamic subtypes " "(subtypes created by a class statement)." msgstr "" +"Este campo es heredado por subtipos estáticos, pero no por subtipos " +"dinámicos (subtipos creados por una declaración de clase)." #: ../Doc/c-api/typeobj.rst:1713 msgid "" "For dynamic subtypes, this field is always set to :c:func:" "`PyType_GenericAlloc`, to force a standard heap allocation strategy." msgstr "" +"Para subtipos dinámicos, este campo siempre se establece en :c:func:" +"`PyType_GenericAlloc`, para forzar una estrategia de asignación de montón " +"estándar." #: ../Doc/c-api/typeobj.rst:1717 msgid "" @@ -2613,10 +3286,13 @@ msgid "" "`PyType_GenericAlloc`. That is the recommended value for all statically " "defined types." msgstr "" +"Para subtipos estáticos, :c:type:`PyBaseObject_Type` utiliza :c:func:" +"`PyType_GenericAlloc`. Ese es el valor recomendado para todos los tipos " +"definidos estáticamente." #: ../Doc/c-api/typeobj.rst:1724 msgid "An optional pointer to an instance creation function." -msgstr "" +msgstr "Un puntero opcional a una función de creación de instancias." #: ../Doc/c-api/typeobj.rst:1730 msgid "" @@ -2626,6 +3302,11 @@ msgid "" "`~PyTypeObject.tp_new` function is called; it may be a subtype of that type " "(but not an unrelated type)." msgstr "" +"El argumento del subtipo es el tipo del objeto que se está creando; los " +"argumentos *args* y *kwds* representan argumentos posicionales y de palabras " +"clave de la llamada al tipo. Tenga en cuenta que el subtipo no tiene que ser " +"igual al tipo cuya función :c:member:`~PyTypeObject.tp_new` se llama; puede " +"ser un subtipo de ese tipo (pero no un tipo no relacionado)." #: ../Doc/c-api/typeobj.rst:1736 msgid "" @@ -2638,6 +3319,15 @@ msgid "" "`~PyTypeObject.tp_new`, while for mutable types, most initialization should " "be deferred to :c:member:`~PyTypeObject.tp_init`." msgstr "" +"La función :c:member:`~PyTypeObject.tp_new` debería llamar a ``subtype-" +">tp_alloc(subtype, nitems)`` para asignar espacio para el objeto, y luego " +"hacer solo la inicialización adicional que sea absolutamente necesaria. La " +"inicialización que se puede ignorar o repetir de forma segura debe colocarse " +"en el controlador :c:member:`~PyTypeObject.tp_init`. Una buena regla general " +"es que para los tipos inmutables, toda la inicialización debe tener lugar " +"en :c:member:`~PyTypeObject.tp_new`, mientras que para los tipos mutables, " +"la mayoría de las inicializaciones se deben diferir a :c:member:" +"`~PyTypeObject.tp_init`." #: ../Doc/c-api/typeobj.rst:1746 msgid "" @@ -2645,6 +3335,9 @@ msgid "" "types whose :c:member:`~PyTypeObject.tp_base` is ``NULL`` or " "``&PyBaseObject_Type``." msgstr "" +"Este campo es heredado por subtipos, excepto que no es heredado por tipos " +"estáticos cuyo :c:member:`~PyTypeObject.tp_base` es ``NULL`` o " +"``&PyBaseObject_Type``." #: ../Doc/c-api/typeobj.rst:1751 msgid "" @@ -2653,23 +3346,32 @@ msgid "" "presumably there is some other way to create instances, like a factory " "function." msgstr "" +"Para los tipos estáticos, este campo no tiene valor predeterminado. Esto " +"significa que si el espacio se define como ``NULL``, no se puede llamar al " +"tipo para crear nuevas instancias; presumiblemente hay otra forma de crear " +"instancias, como una función de fábrica." #: ../Doc/c-api/typeobj.rst:1759 msgid "" "An optional pointer to an instance deallocation function. Its signature is::" msgstr "" +"Un puntero opcional a una función de desasignación de instancia. Su firma " +"es::" #: ../Doc/c-api/typeobj.rst:1763 msgid "" "An initializer that is compatible with this signature is :c:func:" "`PyObject_Free`." msgstr "" +"Un inicializador que es compatible con esta firma es :c:func:`PyObject_Free`." #: ../Doc/c-api/typeobj.rst:1767 msgid "" "This field is inherited by static subtypes, but not by dynamic subtypes " "(subtypes created by a class statement)" msgstr "" +"Este campo es heredado por subtipos estáticos, pero no por subtipos " +"dinámicos (subtipos creados por una declaración de clase)" #: ../Doc/c-api/typeobj.rst:1772 msgid "" @@ -2677,14 +3379,18 @@ msgid "" "func:`PyType_GenericAlloc` and the value of the :const:`Py_TPFLAGS_HAVE_GC` " "flag bit." msgstr "" +"En los subtipos dinámicos, este campo se establece en un desasignador " +"adecuado para que coincida con :c:func:`PyType_GenericAlloc` y el valor del " +"bit de bandera :const:`Py_TPFLAGS_HAVE_GC`." #: ../Doc/c-api/typeobj.rst:1776 msgid "For static subtypes, :c:type:`PyBaseObject_Type` uses PyObject_Del." msgstr "" +"Para subtipos estáticos, :c:type:`PyBaseObject_Type` usa ``PyObject_Del``." #: ../Doc/c-api/typeobj.rst:1781 msgid "An optional pointer to a function called by the garbage collector." -msgstr "" +msgstr "Un puntero opcional a una función llamada por el recolector de basura." #: ../Doc/c-api/typeobj.rst:1783 msgid "" @@ -2697,6 +3403,14 @@ msgid "" "return ``1`` for a collectible instance, and ``0`` for a non-collectible " "instance. The signature is::" msgstr "" +"El recolector de basura necesita saber si un objeto en particular es " +"coleccionable o no. Normalmente, es suficiente mirar el el campo :c:member:" +"`~PyTypeObject.tp_flags` del tipo objeto , y verificar el bit de bandera :" +"const:`Py_TPFLAGS_HAVE_GC`. Pero algunos tipos tienen una mezcla de " +"instancias asignadas estáticamente y dinámicamente, y las instancias " +"asignadas estáticamente no son coleccionables. Tales tipos deberían definir " +"esta función; debería devolver ``1`` para una instancia coleccionable y " +"``0`` para una instancia no coleccionable. La firma es::" #: ../Doc/c-api/typeobj.rst:1793 msgid "" @@ -2704,68 +3418,83 @@ msgid "" "`PyType_Type`, defines this function to distinguish between statically and " "dynamically allocated types.)" msgstr "" +"(El único ejemplo de esto son los mismo tipos. El metatipo, :c:data:" +"`PyType_Type`, define esta función para distinguir entre tipos asignados " +"estáticamente y dinámicamente.)" #: ../Doc/c-api/typeobj.rst:1803 msgid "" "This slot has no default. If this field is ``NULL``, :const:" "`Py_TPFLAGS_HAVE_GC` is used as the functional equivalent." msgstr "" +"Esta ranura no tiene valor predeterminado. Si este campo es ``NULL``, se " +"utiliza :const:`Py_TPFLAGS_HAVE_GC` como el equivalente funcional." #: ../Doc/c-api/typeobj.rst:1809 msgid "Tuple of base types." -msgstr "" +msgstr "Tupla de tipos base." #: ../Doc/c-api/typeobj.rst:1811 msgid "" "This is set for types created by a class statement. It should be ``NULL`` " "for statically defined types." msgstr "" +"Esto se establece para los tipos creados por una declaración de clase. " +"Debería ser ``NULL`` para los tipos estáticamente definidos." #: ../Doc/c-api/typeobj.rst:1816 ../Doc/c-api/typeobj.rst:1837 #: ../Doc/c-api/typeobj.rst:1846 ../Doc/c-api/typeobj.rst:1856 #: ../Doc/c-api/typeobj.rst:1870 msgid "This field is not inherited." -msgstr "" +msgstr "Este campo no se hereda." #: ../Doc/c-api/typeobj.rst:1821 msgid "" "Tuple containing the expanded set of base types, starting with the type " "itself and ending with :class:`object`, in Method Resolution Order." msgstr "" +"Tupla que contiene el conjunto expandido de tipos base, comenzando con el " +"tipo en sí y terminando con :class:`object`, en orden de resolución de " +"método." #: ../Doc/c-api/typeobj.rst:1827 msgid "" "This field is not inherited; it is calculated fresh by :c:func:" "`PyType_Ready`." -msgstr "" +msgstr "Este campo no se hereda; se calcula fresco por :c:func:`PyType_Ready`." #: ../Doc/c-api/typeobj.rst:1833 msgid "Unused. Internal use only." -msgstr "" +msgstr "No usado. Solo para uso interno." #: ../Doc/c-api/typeobj.rst:1842 msgid "List of weak references to subclasses. Internal use only." -msgstr "" +msgstr "Lista de referencias débiles a subclases. Solo para uso interno." #: ../Doc/c-api/typeobj.rst:1851 msgid "" "Weak reference list head, for weak references to this type object. Not " "inherited. Internal use only." msgstr "" +"Cabecera de lista de referencia débil, para referencias débiles a este tipo " +"de objeto. No heredado Solo para uso interno." #: ../Doc/c-api/typeobj.rst:1861 msgid "" "This field is deprecated. Use :c:member:`~PyTypeObject.tp_finalize` instead." msgstr "" +"Este campo está en desuso. Use :c:member:`~PyTypeObject.tp_finalize` en su " +"lugar." #: ../Doc/c-api/typeobj.rst:1866 msgid "Used to index into the method cache. Internal use only." -msgstr "" +msgstr "Se usa para indexar en el caché de métodos. Solo para uso interno." #: ../Doc/c-api/typeobj.rst:1875 msgid "" "An optional pointer to an instance finalization function. Its signature is::" msgstr "" +"Un puntero opcional a una función de finalización de instancia. Su firma es::" #: ../Doc/c-api/typeobj.rst:1879 msgid "" @@ -2776,6 +3505,12 @@ msgid "" "before attempting to break reference cycles, ensuring that it finds the " "object in a sane state." msgstr "" +"Si :c:member:`~PyTypeObject.tp_finalize` está configurado, el intérprete lo " +"llama una vez cuando finaliza una instancia. Se llama desde el recolector de " +"basura (si la instancia es parte de un ciclo de referencia aislado) o justo " +"antes de que el objeto se desasigne. De cualquier manera, se garantiza que " +"se invocará antes de intentar romper los ciclos de referencia, asegurando " +"que encuentre el objeto en un estado sano." #: ../Doc/c-api/typeobj.rst:1886 msgid "" @@ -2783,16 +3518,21 @@ msgid "" "exception status; therefore, a recommended way to write a non-trivial " "finalizer is::" msgstr "" +":c:member:`~PyTypeObject.tp_finalize` no debe mutar el estado de excepción " +"actual; por lo tanto, una forma recomendada de escribir un finalizador no " +"trivial es::" #: ../Doc/c-api/typeobj.rst:1903 msgid "" "For this field to be taken into account (even through inheritance), you must " "also set the :const:`Py_TPFLAGS_HAVE_FINALIZE` flags bit." msgstr "" +"Para que este campo se tenga en cuenta (incluso a través de la herencia), " +"también debe establecer el bit de banderas :const:`Py_TPFLAGS_HAVE_FINALIZE`." #: ../Doc/c-api/typeobj.rst:1912 msgid "\"Safe object finalization\" (:pep:`442`)" -msgstr "" +msgstr "\"Finalización segura de objetos\" (:pep:`442`)" #: ../Doc/c-api/typeobj.rst:1915 msgid "" @@ -2801,30 +3541,38 @@ msgid "" "documented here for completeness. None of these fields are inherited by " "subtypes." msgstr "" +"Los campos restantes solo se definen si la macro de prueba de " +"características :const:`COUNT_ALLOCS` está definida, y son solo para uso " +"interno. Se documentan aquí para completar. Ninguno de estos campos es " +"heredado por subtipos." #: ../Doc/c-api/typeobj.rst:1922 msgid "Number of allocations." -msgstr "" +msgstr "Número de asignaciones." #: ../Doc/c-api/typeobj.rst:1926 msgid "Number of frees." -msgstr "" +msgstr "Número de liberaciones." #: ../Doc/c-api/typeobj.rst:1930 msgid "Maximum simultaneously allocated objects." -msgstr "" +msgstr "Máximo de objetos asignados simultáneamente." #: ../Doc/c-api/typeobj.rst:1934 msgid "" "Pointer to the previous type object with a non-zero :c:member:`~PyTypeObject." "tp_allocs` field." msgstr "" +"Puntero al objeto tipo anterior con un campo distinto de cero :c:member:" +"`~PyTypeObject.tp_allocs`." #: ../Doc/c-api/typeobj.rst:1938 msgid "" "Pointer to the next type object with a non-zero :c:member:`~PyTypeObject." "tp_allocs` field." msgstr "" +"Puntero al siguiente objeto tipo con un campo distinto de cero :c:member:" +"`~PyTypeObject.tp_allocs`." #: ../Doc/c-api/typeobj.rst:1940 msgid "" @@ -2838,10 +3586,22 @@ msgid "" "care should be taken to ensure that destroying those objects on the thread " "which called tp_dealloc will not violate any assumptions of the library." msgstr "" +"Además, tenga en cuenta que, en un Python que ha recolectado basura, se " +"puede llamar a :c:member:`~PyTypeObject.tp_dealloc` desde cualquier hilo de " +"Python, no solo el hilo que creó el objeto (si el objeto se convierte en " +"parte de un ciclo de conteo de referencias, ese ciclo puede ser recogido por " +"una recolección de basura en cualquier hilo). Esto no es un problema para " +"las llamadas a la API de Python, ya que el hilo en el que se llama " +"``tp_dealloc`` será el propietario del Bloqueo Global del Intérprete (GIL, " +"por sus siglas en inglés *Global Interpreter Lock*). Sin embargo, si el " +"objeto que se destruye a su vez destruye objetos de alguna otra biblioteca C " +"o C++, se debe tener cuidado para garantizar que la destrucción de esos " +"objetos en el hilo que se llama ``tp_dealloc`` no violará ningún supuesto de " +"la biblioteca." #: ../Doc/c-api/typeobj.rst:1954 msgid "Heap Types" -msgstr "" +msgstr "Tipos Montículos (*Heap Types*)" #: ../Doc/c-api/typeobj.rst:1956 msgid "" @@ -2849,23 +3609,33 @@ msgid "" "type:`PyTypeObject` structure is defined directly in code and initialized " "using :c:func:`PyType_Ready`." msgstr "" +"Tradicionalmente, los tipos definidos en el código C son *static*, es decir, " +"una estructura estática :c:type:`PyTypeObject` se define directamente en el " +"código y se inicializa usando :c:func:`PyType_Ready`." #: ../Doc/c-api/typeobj.rst:1960 msgid "" "This results in types that are limited relative to types defined in Python:" msgstr "" +"Esto da como resultado tipos que están limitados en relación con los tipos " +"definidos en Python:" #: ../Doc/c-api/typeobj.rst:1962 msgid "" "Static types are limited to one base, i.e. they cannot use multiple " "inheritance." msgstr "" +"Los tipos estáticos están limitados a una base, es decir, no pueden usar " +"herencia múltiple." #: ../Doc/c-api/typeobj.rst:1964 msgid "" "Static type objects (but not necessarily their instances) are immutable. It " "is not possible to add or modify the type object's attributes from Python." msgstr "" +"Los objetos de tipo estático (pero no necesariamente sus instancias) son " +"inmutables. No es posible agregar o modificar los atributos del objeto tipo " +"desde Python." #: ../Doc/c-api/typeobj.rst:1966 msgid "" @@ -2873,6 +3643,9 @@ msgid "" "interpreter-support>`, so they should not include any subinterpreter-" "specific state." msgstr "" +"Los objetos de tipo estático se comparten en :ref:`sub intérpretes `, por lo que no deben incluir ningún estado específico " +"del sub interpretador." #: ../Doc/c-api/typeobj.rst:1970 msgid "" @@ -2880,6 +3653,9 @@ msgid "" "`, any extension modules using static types must be compiled for a " "specific Python minor version." msgstr "" +"Además, dado que :c:type:`PyTypeObject` no forma parte de :ref:`stable ABI " +"`, cualquier módulo de extensión que use tipos estáticos debe " +"compilarse para una versión menor específica de Python." #: ../Doc/c-api/typeobj.rst:1974 msgid "" @@ -2887,16 +3663,22 @@ msgid "" "for short, which correspond closely to classes created by Python's ``class`` " "statement." msgstr "" +"Una alternativa a los tipos estáticos es *tipos asignados al montículo* " +"(*heap-allocated types*), o *tipos montículo* (*heap types*) para abreviar, " +"que corresponden estrechamente a las clases creadas por la declaración " +"``class`` de Python." #: ../Doc/c-api/typeobj.rst:1978 msgid "" "This is done by filling a :c:type:`PyType_Spec` structure and calling :c:" "func:`PyType_FromSpecWithBases`." msgstr "" +"Esto se hace completando una estructura :c:type:`PyType_Spec` y llamando a :" +"c:func:`PyType_FromSpecWithBases`." #: ../Doc/c-api/typeobj.rst:1985 msgid "Number Object Structures" -msgstr "" +msgstr "Estructuras de Objetos de Números" #: ../Doc/c-api/typeobj.rst:1992 msgid "" @@ -2904,10 +3686,13 @@ msgid "" "implement the number protocol. Each function is used by the function of " "similar name documented in the :ref:`number` section." msgstr "" +"Esta estructura contiene punteros a las funciones que utiliza un objeto para " +"implementar el protocolo numérico. Cada función es utilizada por la función " +"de un nombre similar documentado en la sección :ref:`number`." #: ../Doc/c-api/typeobj.rst:1998 ../Doc/c-api/typeobj.rst:2322 msgid "Here is the structure definition::" -msgstr "" +msgstr "Aquí está la definición de la estructura::" #: ../Doc/c-api/typeobj.rst:2045 msgid "" @@ -2918,22 +3703,32 @@ msgid "" "``Py_NotImplemented``, if another error occurred they must return ``NULL`` " "and set an exception." msgstr "" +"Las funciones binarias y ternarias deben verificar el tipo de todos sus " +"operandos e implementar las conversiones necesarias (al menos uno de los " +"operandos es una instancia del tipo definido). Si la operación no está " +"definida para los operandos dados, las funciones binarias y ternarias deben " +"retornar ``Py_NotImplemented``, si se produce otro error, deben devolver " +"``NULL`` y establecer una excepción." #: ../Doc/c-api/typeobj.rst:2054 msgid "" "The :c:data:`nb_reserved` field should always be ``NULL``. It was " "previously called :c:data:`nb_long`, and was renamed in Python 3.0.1." msgstr "" +"El campo :c:data:`nb_reserved` siempre debe ser ``NULL``. Anteriormente se " +"llamaba :c:data:`nb_long`, y se renombró en Python 3.0.1." #: ../Doc/c-api/typeobj.rst:2099 msgid "Mapping Object Structures" -msgstr "" +msgstr "Estructuras de Objetos Mapeo" #: ../Doc/c-api/typeobj.rst:2106 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the mapping protocol. It has three members:" msgstr "" +"Esta estructura contiene punteros a las funciones que utiliza un objeto para " +"implementar el protocolo de mapeo. Tiene tres miembros:" #: ../Doc/c-api/typeobj.rst:2111 msgid "" @@ -2941,6 +3736,9 @@ msgid "" "`PyObject_Size`, and has the same signature. This slot may be set to " "``NULL`` if the object has no defined length." msgstr "" +"Esta función es utilizada por :c:func:`PyMapping_Size` y :c:func:" +"`PyObject_Size`, y tiene la misma firma. Esta ranura puede establecerse en " +"``NULL`` si el objeto no tiene una longitud definida." #: ../Doc/c-api/typeobj.rst:2117 msgid "" @@ -2949,6 +3747,10 @@ msgid "" "PyObject_GetItem`. This slot must be filled for the :c:func:" "`PyMapping_Check` function to return ``1``, it can be ``NULL`` otherwise." msgstr "" +"Esta función es utilizada por :c:func:`PyObject_GetItem` y :c:func:" +"`PySequence_GetSlice`, y tiene la misma firma que :c:func:`!" +"PyObject_GetItem`. Este espacio debe llenarse para que la función :c:func:" +"`PyMapping_Check` retorna ``1``, de lo contrario puede ser ``NULL``." #: ../Doc/c-api/typeobj.rst:2125 msgid "" @@ -2959,16 +3761,24 @@ msgid "" "If this slot is ``NULL``, the object does not support item assignment and " "deletion." msgstr "" +"Esta función es utilizada por :c:func:`PyObject_SetItem`, :c:func:" +"`PyObject_DelItem`, :c:func:`PyObject_SetSlice` y :c:func:" +"`PyObject_DelSlice`. Tiene la misma firma que :c:func:`!PyObject_SetItem`, " +"pero *v* también se puede establecer en ``NULL`` para eliminar un elemento. " +"Si este espacio es ``NULL``, el objeto no admite la asignación y eliminación " +"de elementos." #: ../Doc/c-api/typeobj.rst:2136 msgid "Sequence Object Structures" -msgstr "" +msgstr "Estructuras de objetos secuencia" #: ../Doc/c-api/typeobj.rst:2143 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the sequence protocol." msgstr "" +"Esta estructura contiene punteros a las funciones que utiliza un objeto para " +"implementar el protocolo de secuencia." #: ../Doc/c-api/typeobj.rst:2148 msgid "" @@ -2977,6 +3787,10 @@ msgid "" "negative indices via the :c:member:`~PySequenceMethods.sq_item` and the :c:" "member:`~PySequenceMethods.sq_ass_item` slots." msgstr "" +"Esta función es utilizada por :c:func:`PySequence_Size` y :c:func:" +"`PyObject_Size`, y tiene la misma firma. También se usa para manejar índices " +"negativos a través de los espacios :c:member:`~PySequenceMethods.sq_item` y :" +"c:member:`~PySequenceMethods.sq_ass_item`." #: ../Doc/c-api/typeobj.rst:2155 msgid "" @@ -2984,6 +3798,9 @@ msgid "" "signature. It is also used by the ``+`` operator, after trying the numeric " "addition via the :c:member:`~PyNumberMethods.nb_add` slot." msgstr "" +"Esta función es utilizada por :c:func:`PySequence_Concat` y tiene la misma " +"firma. También es utilizado por el operador ``+``, después de intentar la " +"suma numérica a través de la ranura :c:member:`~PyNumberMethods.nb_add`." #: ../Doc/c-api/typeobj.rst:2161 msgid "" @@ -2991,6 +3808,10 @@ msgid "" "signature. It is also used by the ``*`` operator, after trying numeric " "multiplication via the :c:member:`~PyNumberMethods.nb_multiply` slot." msgstr "" +"Esta función es utilizada por :c:func:`PySequence_Repeat` y tiene la misma " +"firma. También es utilizado por el operador ``*``, después de intentar la " +"multiplicación numérica a través de la ranura :c:member:`~PyNumberMethods." +"nb_multiply`." #: ../Doc/c-api/typeobj.rst:2167 msgid "" @@ -3000,6 +3821,11 @@ msgid "" "slot must be filled for the :c:func:`PySequence_Check` function to return " "``1``, it can be ``NULL`` otherwise." msgstr "" +"Esta función es utilizada por :c:func:`PySequence_GetItem` y tiene la misma " +"firma. También es utilizado por :c:func:`PyObject_GetItem`, después de " +"intentar la suscripción a través de la ranura :c:member:`~PyMappingMethods." +"mp_subscript`. Este espacio debe llenarse para que la función :c:func:" +"`PySequence_Check` retorna ``1``, de lo contrario puede ser ``NULL``." #: ../Doc/c-api/typeobj.rst:2173 msgid "" @@ -3008,6 +3834,10 @@ msgid "" "index which is passed to :attr:`sq_item`. If :attr:`sq_length` is ``NULL``, " "the index is passed as is to the function." msgstr "" +"Los índices negativos se manejan de la siguiente manera: si se llena el " +"espacio :attr:`sq_length`, se llama y la longitud de la secuencia se usa " +"para calcular un índice positivo que se pasa a :attr:`sq_item`. Si :attr:" +"`sq_length` es ``NULL``, el índice se pasa como es a la función." #: ../Doc/c-api/typeobj.rst:2180 msgid "" @@ -3017,6 +3847,12 @@ msgid "" "member:`~PyMappingMethods.mp_ass_subscript` slot. This slot may be left to " "``NULL`` if the object does not support item assignment and deletion." msgstr "" +"Esta función es utilizada por :c:func:`PySequence_SetItem` y tiene la misma " +"firma. También lo usan :c:func:`PyObject_SetItem` y :c:func:" +"`PyObject_DelItem`, después de intentar la asignación y eliminación del " +"elemento a través de la ranura :c:member:`~PyMappingMethods." +"mp_ass_subscript`. Este espacio puede dejarse en ``NULL`` si el objeto no " +"admite la asignación y eliminación de elementos." #: ../Doc/c-api/typeobj.rst:2189 msgid "" @@ -3024,6 +3860,10 @@ msgid "" "signature. This slot may be left to ``NULL``, in this case :c:func:`!" "PySequence_Contains` simply traverses the sequence until it finds a match." msgstr "" +"Esta función puede ser utilizada por :c:func:`PySequence_Contains` y tiene " +"la misma firma. Este espacio puede dejarse en ``NULL``, en este caso :c:func:" +"`!PySequence_Contains` simplemente atraviesa la secuencia hasta que " +"encuentra una coincidencia." #: ../Doc/c-api/typeobj.rst:2196 msgid "" @@ -3034,6 +3874,12 @@ msgid "" "augmented assignment ``+=``, after trying numeric in-place addition via the :" "c:member:`~PyNumberMethods.nb_inplace_add` slot." msgstr "" +"Esta función es utilizada por :c:func:`PySequence_InPlaceConcat` y tiene la " +"misma firma. Debería modificar su primer operando y devolverlo. Este espacio " +"puede dejarse en ``NULL``, en este caso :c:func:`!PySequence_InPlaceConcat` " +"volverá a :c:func:`PySequence_Concat`. También es utilizado por la " +"asignación aumentada ``+=``, después de intentar la suma numérica en el " +"lugar a través de la ranura :c:member:`~PyNumberMethods.nb_inplace_add`." #: ../Doc/c-api/typeobj.rst:2205 msgid "" @@ -3044,10 +3890,17 @@ msgid "" "augmented assignment ``*=``, after trying numeric in-place multiplication " "via the :c:member:`~PyNumberMethods.nb_inplace_multiply` slot." msgstr "" +"Esta función es utilizada por :c:func:`PySequence_InPlaceRepeat` y tiene la " +"misma firma. Debería modificar su primer operando y devolverlo. Este espacio " +"puede dejarse en ``NULL``, en este caso :c:func:`!PySequence_InPlaceRepeat` " +"volverá a :c:func:`PySequence_Repeat`. También es utilizado por la " +"asignación aumentada ``*=``, después de intentar la multiplicación numérica " +"en el lugar a través de la ranura :c:member:`~PyNumberMethods." +"nb_inplace_multiply`." #: ../Doc/c-api/typeobj.rst:2216 msgid "Buffer Object Structures" -msgstr "" +msgstr "Estructuras de Objetos Búfer" #: ../Doc/c-api/typeobj.rst:2224 msgid "" @@ -3055,12 +3908,15 @@ msgid "" "protocol `. The protocol defines how an exporter object can " "expose its internal data to consumer objects." msgstr "" +"Esta estructura contiene punteros a las funciones requeridas por :ref:" +"`Buffer protocol `. El protocolo define cómo un objeto " +"exportador puede exponer sus datos internos a objetos de consumo." #: ../Doc/c-api/typeobj.rst:2230 ../Doc/c-api/typeobj.rst:2279 #: ../Doc/c-api/typeobj.rst:2332 ../Doc/c-api/typeobj.rst:2343 #: ../Doc/c-api/typeobj.rst:2354 msgid "The signature of this function is::" -msgstr "" +msgstr "La firma de esta función es::" #: ../Doc/c-api/typeobj.rst:2234 msgid "" @@ -3068,47 +3924,61 @@ msgid "" "Except for point (3), an implementation of this function MUST take these " "steps:" msgstr "" +"Maneja una solicitud a *exporter* para completar *view* según lo " +"especificado por *flags*. Excepto por el punto (3), una implementación de " +"esta función DEBE seguir estos pasos:" #: ../Doc/c-api/typeobj.rst:2238 msgid "" "Check if the request can be met. If not, raise :c:data:`PyExc_BufferError`, " "set :c:data:`view->obj` to ``NULL`` and return ``-1``." msgstr "" +"Comprueba si se puede cumplir con la solicitud. Si no, lanza :c:data:" +"`PyExc_BufferError`, establece :c:data:`view->obj` en ``NULL`` y retorna " +"``-1``." #: ../Doc/c-api/typeobj.rst:2241 msgid "Fill in the requested fields." -msgstr "" +msgstr "Rellene los campos solicitados." #: ../Doc/c-api/typeobj.rst:2243 msgid "Increment an internal counter for the number of exports." msgstr "" +"Incrementa un contador interno para el número de exportaciones (*exports*)." #: ../Doc/c-api/typeobj.rst:2245 msgid "" "Set :c:data:`view->obj` to *exporter* and increment :c:data:`view->obj`." msgstr "" +"Establece :c:data:`view->obj` en *exporter* e incremente :c:data:`view->obj`." #: ../Doc/c-api/typeobj.rst:2247 msgid "Return ``0``." -msgstr "" +msgstr "Retorna ``0``." #: ../Doc/c-api/typeobj.rst:2249 msgid "" "If *exporter* is part of a chain or tree of buffer providers, two main " "schemes can be used:" msgstr "" +"Si *exporter* es parte de una cadena o árbol de proveedores de búfer, se " +"pueden usar dos esquemas principales:" #: ../Doc/c-api/typeobj.rst:2252 msgid "" "Re-export: Each member of the tree acts as the exporting object and sets :c:" "data:`view->obj` to a new reference to itself." msgstr "" +"Re-exportación: cada miembro del árbol actúa como el objeto exportador y " +"establece :c:data:`view->obj` en una nueva referencia a sí mismo." #: ../Doc/c-api/typeobj.rst:2255 msgid "" "Redirect: The buffer request is redirected to the root object of the tree. " "Here, :c:data:`view->obj` will be a new reference to the root object." msgstr "" +"Redirigir: la solicitud de búfer se redirige al objeto raíz del árbol. Aquí :" +"c:data:`view->obj` será una nueva referencia al objeto raíz." #: ../Doc/c-api/typeobj.rst:2259 msgid "" @@ -3117,6 +3987,10 @@ msgid "" "specific requests are in section :ref:`Buffer request types `." msgstr "" +"Los campos individuales de *view* se describen en la sección :ref:" +"`Estructura de búfer `, las reglas sobre cómo debe " +"reaccionar un exportador a solicitudes específicas se encuentran en la " +"sección :ref:`Tipos de solicitud de búfer `." #: ../Doc/c-api/typeobj.rst:2264 msgid "" @@ -3126,18 +4000,28 @@ msgid "" "strides`, :c:member:`~Py_buffer.suboffsets` and :c:member:`~Py_buffer." "internal` are read-only for the consumer." msgstr "" +"Toda la memoria señalada en la estructura :c:type:`Py_buffer` pertenece al " +"exportador y debe permanecer válida hasta que no queden consumidores. :c:" +"member:`~Py_buffer.format`, :c:member:`~Py_buffer.shape`, :c:member:" +"`~Py_buffer.strides`, :c:member:`~Py_buffer.suboffsets` y :c:member:" +"`~Py_buffer.internal` son de solo lectura para el consumidor." #: ../Doc/c-api/typeobj.rst:2271 msgid "" ":c:func:`PyBuffer_FillInfo` provides an easy way of exposing a simple bytes " "buffer while dealing correctly with all request types." msgstr "" +":c:func:`PyBuffer_FillInfo` proporciona una manera fácil de exponer un búfer " +"de bytes simple mientras se trata correctamente con todos los tipos de " +"solicitud." #: ../Doc/c-api/typeobj.rst:2274 msgid "" ":c:func:`PyObject_GetBuffer` is the interface for the consumer that wraps " "this function." msgstr "" +":c:func:`PyObject_GetBuffer` es la interfaz para el consumidor que envuelve " +"esta función." #: ../Doc/c-api/typeobj.rst:2283 msgid "" @@ -3146,14 +4030,18 @@ msgid "" "``NULL``. Otherwise, a standard implementation of this function will take " "these optional steps:" msgstr "" +"Maneja una solicitud para liberar los recursos del búfer. Si no es necesario " +"liberar recursos, :c:member:`PyBufferProcs.bf_releasebuffer` puede ser " +"``NULL``. De lo contrario, una implementación estándar de esta función " +"tomará estos pasos opcionales:" #: ../Doc/c-api/typeobj.rst:2288 msgid "Decrement an internal counter for the number of exports." -msgstr "" +msgstr "Disminuir un contador interno para el número de exportaciones." #: ../Doc/c-api/typeobj.rst:2290 msgid "If the counter is ``0``, free all memory associated with *view*." -msgstr "" +msgstr "Si el contador es ``0``, libera toda la memoria asociada con *view*." #: ../Doc/c-api/typeobj.rst:2292 msgid "" @@ -3162,6 +4050,10 @@ msgid "" "constant, while a consumer MAY pass a copy of the original buffer as the " "*view* argument." msgstr "" +"El exportador DEBE utilizar el campo :c:member:`~Py_buffer.internal` para " +"realizar un seguimiento de los recursos específicos del búfer. Se garantiza " +"que este campo permanecerá constante, mientras que un consumidor PUEDE pasar " +"una copia del búfer original como argumento *view*." #: ../Doc/c-api/typeobj.rst:2298 msgid "" @@ -3169,54 +4061,72 @@ msgid "" "automatically in :c:func:`PyBuffer_Release` (this scheme is useful for " "breaking reference cycles)." msgstr "" +"Esta función NO DEBE disminuir :c:data:`view->obj`, ya que esto se hace " +"automáticamente en :c:func:`PyBuffer_Release` (este esquema es útil para " +"romper los ciclos de referencia)." #: ../Doc/c-api/typeobj.rst:2303 msgid "" ":c:func:`PyBuffer_Release` is the interface for the consumer that wraps this " "function." msgstr "" +":c:func:`PyBuffer_Release` es la interfaz para el consumidor que envuelve " +"esta función." #: ../Doc/c-api/typeobj.rst:2311 msgid "Async Object Structures" -msgstr "" +msgstr "Estructuras de objetos asíncronos" #: ../Doc/c-api/typeobj.rst:2319 msgid "" "This structure holds pointers to the functions required to implement :term:" "`awaitable` and :term:`asynchronous iterator` objects." msgstr "" +"Esta estructura contiene punteros a las funciones requeridas para " +"implementar objetos \"esperable\" (:term:`awaitable`) y \"iterador " +"asincrónico\" (:term:`asynchronous iterator`)." #: ../Doc/c-api/typeobj.rst:2336 msgid "" "The returned object must be an iterator, i.e. :c:func:`PyIter_Check` must " "return ``1`` for it." msgstr "" +"El objeto retornado debe ser un iterador, es decir :c:func:`PyIter_Check` " +"debe retornar ``1`` para ello." #: ../Doc/c-api/typeobj.rst:2339 msgid "" "This slot may be set to ``NULL`` if an object is not an :term:`awaitable`." msgstr "" +"Este espacio puede establecerse en ``NULL`` si un objeto no es :term:" +"`awaitable`." #: ../Doc/c-api/typeobj.rst:2347 msgid "" "Must return an :term:`awaitable` object. See :meth:`__anext__` for details." msgstr "" +"Debe retornar un objeto \"esperable\" (:term:`awaitable`). Ver :meth:" +"`__anext__` para más detalles." #: ../Doc/c-api/typeobj.rst:2349 msgid "" "This slot may be set to ``NULL`` if an object does not implement " "asynchronous iteration protocol." msgstr "" +"Este espacio puede establecerse en ``NULL`` si un objeto no implementa el " +"protocolo de iteración asincrónica." #: ../Doc/c-api/typeobj.rst:2358 msgid "" "Must return an :term:`awaitable` object. See :meth:`__anext__` for details. " "This slot may be set to ``NULL``." msgstr "" +"Debe retornar un objeto \"esperable\" (:term:`esperable`). Ver :meth:" +"`__anext__` para más detalles. Esta ranura puede establecerse en ``NULL``." #: ../Doc/c-api/typeobj.rst:2365 msgid "Slot Type typedefs" -msgstr "" +msgstr "Tipo Ranura *typedefs*" #: ../Doc/c-api/typeobj.rst:2369 msgid "" @@ -3231,6 +4141,16 @@ msgid "" "otherwise, *nitems* is not used and the length of the block should be :c:" "member:`~PyTypeObject.tp_basicsize`." msgstr "" +"El propósito de esta función es separar la asignación de memoria de la " +"inicialización de memoria. Debería devolver un puntero a un bloque de " +"memoria de longitud adecuada para la instancia, adecuadamente alineado e " +"inicializado a ceros, pero con :attr:`ob_refcnt` establecido en ``1`` y :" +"attr:`ob_type` establecido en argumento de tipo. Si el tipo :c:member:" +"`~PyTypeObject.tp_itemsize` no es cero, el campo del objeto :attr:`ob_size` " +"debe inicializarse en *nitems* y la longitud del bloque de memoria asignado " +"debe ser ``tp_basicsize + nitems*tp_itemsize``, redondeado a un múltiplo de " +"``sizeof(void*)``; de lo contrario, *nitems* no se usa y la longitud del " +"bloque debe ser :c:member:`~PyTypeObject.tp_basicsize`." #: ../Doc/c-api/typeobj.rst:2379 msgid "" @@ -3238,78 +4158,85 @@ msgid "" "allocate additional memory; that should be done by :c:member:`~PyTypeObject." "tp_new`." msgstr "" +"Esta función no debe hacer ninguna otra instancia de inicialización, ni " +"siquiera para asignar memoria adicional; eso debe ser realizado por :c:" +"member:`~PyTypeObject.tp_new`." #: ../Doc/c-api/typeobj.rst:2386 msgid "See :c:member:`~PyTypeObject.tp_vectorcall_offset`." -msgstr "" +msgstr "Consulte :c:member:`~PyTypeObject.tp_vectorcall_offset`." #: ../Doc/c-api/typeobj.rst:2388 msgid "" "Arguments to ``vectorcallfunc`` are the same as for :c:func:" "`_PyObject_Vectorcall`." msgstr "" +"Los argumentos para ``vectorcallfunc`` son los mismos que para :c:func:" +"`_PyObject_Vectorcall`." #: ../Doc/c-api/typeobj.rst:2394 msgid "See :c:member:`~PyTypeObject.tp_free`." -msgstr "" +msgstr "Consulte :c:member:`~PyTypeObject.tp_free`." #: ../Doc/c-api/typeobj.rst:2398 msgid "See :c:member:`~PyTypeObject.tp_new`." -msgstr "" +msgstr "Consulte :c:member:`~PyTypeObject.tp_new`." #: ../Doc/c-api/typeobj.rst:2402 msgid "See :c:member:`~PyTypeObject.tp_init`." -msgstr "" +msgstr "Consulte :c:member:`~PyTypeObject.tp_init`." #: ../Doc/c-api/typeobj.rst:2406 msgid "See :c:member:`~PyTypeObject.tp_repr`." -msgstr "" +msgstr "Consulte :c:member:`~PyTypeObject.tp_repr`." #: ../Doc/c-api/typeobj.rst:2410 ../Doc/c-api/typeobj.rst:2419 msgid "Return the value of the named attribute for the object." -msgstr "" +msgstr "Retorna el valor del atributo nombrado para el objeto." #: ../Doc/c-api/typeobj.rst:2414 ../Doc/c-api/typeobj.rst:2425 msgid "" "Set the value of the named attribute for the object. The value argument is " "set to ``NULL`` to delete the attribute." msgstr "" +"Establece el valor del atributo nombrado para el objeto. El argumento del " +"valor se establece en ``NULL`` para eliminar el atributo." #: ../Doc/c-api/typeobj.rst:2421 msgid "See :c:member:`~PyTypeObject.tp_getattro`." -msgstr "" +msgstr "Consulte :c:member:`~PyTypeObject.tp_getattro`." #: ../Doc/c-api/typeobj.rst:2428 msgid "See :c:member:`~PyTypeObject.tp_setattro`." -msgstr "" +msgstr "Consulte :c:member:`~PyTypeObject.tp_setattro`." #: ../Doc/c-api/typeobj.rst:2432 msgid "See :c:member:`~PyTypeObject.tp_descrget`." -msgstr "" +msgstr "Consulte :c:member:`~PyTypeObject.tp_descrget`." #: ../Doc/c-api/typeobj.rst:2436 msgid "See :c:member:`~PyTypeObject.tp_descrset`." -msgstr "" +msgstr "Consulte :c:member:`~PyTypeObject.tp_descrset`." #: ../Doc/c-api/typeobj.rst:2440 msgid "See :c:member:`~PyTypeObject.tp_hash`." -msgstr "" +msgstr "Consulte :c:member:`~PyTypeObject.tp_hash`." #: ../Doc/c-api/typeobj.rst:2444 msgid "See :c:member:`~PyTypeObject.tp_richcompare`." -msgstr "" +msgstr "Consulte :c:member:`~PyTypeObject.tp_richcompare`." #: ../Doc/c-api/typeobj.rst:2448 msgid "See :c:member:`~PyTypeObject.tp_iter`." -msgstr "" +msgstr "Consulte :c:member:`~PyTypeObject.tp_iter`." #: ../Doc/c-api/typeobj.rst:2452 msgid "See :c:member:`~PyTypeObject.tp_iternext`." -msgstr "" +msgstr "Consulte :c:member:`~PyTypeObject.tp_iternext`." #: ../Doc/c-api/typeobj.rst:2478 msgid "Examples" -msgstr "" +msgstr "Ejemplos" #: ../Doc/c-api/typeobj.rst:2480 msgid "" @@ -3318,31 +4245,43 @@ msgid "" "more examples, practical info, and a tutorial, see :ref:`defining-new-types` " "and :ref:`new-types-topics`." msgstr "" +"Los siguientes son ejemplos simples de definiciones de tipo Python. Incluyen " +"el uso común que puede encontrar. Algunos demuestran casos difíciles de " +"esquina (*corner cases*). Para obtener más ejemplos, información práctica y " +"un tutorial, consulte \"definiendo nuevos tipos\" (:ref:`defining-new-" +"types`) y \"tópicos de nuevos tipos (:ref:`new-types-topics`)." #: ../Doc/c-api/typeobj.rst:2485 msgid "A basic static type::" -msgstr "" +msgstr "Un tipo estático básico::" #: ../Doc/c-api/typeobj.rst:2502 msgid "" "You may also find older code (especially in the CPython code base) with a " "more verbose initializer::" msgstr "" +"También puede encontrar código más antiguo (especialmente en la base de " +"código CPython) con un inicializador más detallado::" #: ../Doc/c-api/typeobj.rst:2546 msgid "A type that supports weakrefs, instance dicts, and hashing::" msgstr "" +"Un tipo que admite referencias débiles, instancias de diccionarios (*dicts*) " +"y *hashing*::" #: ../Doc/c-api/typeobj.rst:2573 msgid "" "A str subclass that cannot be subclassed and cannot be called to create " "instances (e.g. uses a separate factory func)::" msgstr "" +"Una subclase de *str* que no se puede subclasificar (*subclassed*) y no se " +"puede llamar para crear instancias (por ejemplo, utiliza una función de " +"fábrica separada)::" #: ../Doc/c-api/typeobj.rst:2592 msgid "The simplest static type (with fixed-length instances)::" -msgstr "" +msgstr "El tipo estático más simple (con instancias de longitud fija)::" #: ../Doc/c-api/typeobj.rst:2603 msgid "The simplest static type (with variable-length instances)::" -msgstr "" +msgstr "El tipo estático más simple (con instancias de longitud variable)::" diff --git a/dict b/dict index a13f690301..97d12c8dfb 100644 --- a/dict +++ b/dict @@ -67,6 +67,7 @@ Mark Microsoft Mitch Monty +N NumPy Numerical Olsen @@ -143,9 +144,12 @@ bytes búfer búferes cargable +cargables class coerción collector +coleccionable +coleccionables comilla command compilada @@ -163,12 +167,17 @@ debugueando default desalojable desasigna +desasigne desasignación +desasignarán +desasignador +desasignadores descargable descompresor deserialización deserializar desinstalador +designadores desreferenciación dict dinámicamente @@ -184,6 +193,8 @@ especificador estáticamente except f +finalizador +finalizadores flag flags float @@ -191,6 +202,7 @@ format fraccional freeze garbage +gcc gid granularidad gzip @@ -212,8 +224,11 @@ indentando indexables inicializa inicialización +inicializaciones inicializada inicializado +inicializador +inicializadores inicializan inicializar insert @@ -249,6 +264,8 @@ mapeos metaclase metaclases metadatos +metatipo +metatipos mezclarlos modularidad monoespaciada @@ -266,6 +283,7 @@ nonlocal object onexit option +operandos or os pads @@ -293,6 +311,7 @@ pseudo py pyc python +R read readline recompila @@ -307,12 +326,16 @@ redefinir redondeándolo ref refactorización +referenciable +referenciables referenciada referenciadas referenciado referenciados referencian referenciarse +reinicializador +reinicializar remove reordenar request @@ -334,6 +357,7 @@ serializar shell sincronización singleton +singletons sintácticamente situ sobreescriban @@ -350,6 +374,7 @@ stdout strings sub subcarpetas +subclasificar subcomandos subdirectorio submódulo @@ -358,6 +383,8 @@ subpaquete subpaquetes subsecuencias subíndices +subtipable +subtiparse sys t tab