diff --git a/reference/datamodel.po b/reference/datamodel.po
index 4fa9d52c2e..78e27ad69d 100644
--- a/reference/datamodel.po
+++ b/reference/datamodel.po
@@ -11,15 +11,16 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2024-11-21 16:38-0300\n"
-"PO-Revision-Date: 2021-12-09 23:44-0300\n"
+"PO-Revision-Date: 2025-03-16 17:18-0600\n"
 "Last-Translator: Cristián Maureira-Fredes <cmaureirafredes@gmail.com>\n"
-"Language: es\n"
 "Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "Generated-By: Babel 2.16.0\n"
+"X-Generator: Poedit 3.5\n"
 
 #: ../Doc/reference/datamodel.rst:6
 msgid "Data model"
@@ -43,7 +44,6 @@ msgstr ""
 "representado por objetos.)"
 
 #: ../Doc/reference/datamodel.rst:35
-#, fuzzy
 msgid ""
 "Every object has an identity, a type and a value.  An object's *identity* "
 "never changes once it has been created; you may think of it as the object's "
@@ -53,7 +53,7 @@ msgid ""
 msgstr ""
 "Cada objeto tiene una identidad, un tipo y un valor. La *identidad* de un "
 "objeto nunca cambia una vez que ha sido creado; puede pensar en ello como la "
-"dirección del objeto en la memoria. El operador ':keyword:`is`' compara la "
+"dirección del objeto en la memoria. El operador :keyword:`is` compara la "
 "identidad de dos objetos; la función :func:`id` retorna un número entero que "
 "representa su identidad."
 
@@ -138,7 +138,6 @@ msgstr ""
 "inalcanzables (por lo que siempre debe cerrar los archivos explícitamente)."
 
 #: ../Doc/reference/datamodel.rst:82
-#, fuzzy
 msgid ""
 "Note that the use of the implementation's tracing or debugging facilities "
 "may keep objects alive that would normally be collectable. Also note that "
@@ -148,11 +147,10 @@ msgstr ""
 "Tenga en cuenta que el uso de las funciones de rastreo o depuración de la "
 "implementación puede mantener activos los objetos que normalmente serían "
 "coleccionables. También tenga en cuenta que la captura de una excepción con "
-"una sentencia ':keyword:`try`...\\ :keyword:`except`' puede mantener objetos "
+"una sentencia :keyword:`try`...\\ :keyword:`except` puede mantener objetos "
 "activos."
 
 #: ../Doc/reference/datamodel.rst:87
-#, fuzzy
 msgid ""
 "Some objects contain references to \"external\" resources such as open files "
 "or windows.  It is understood that these resources are freed when the object "
@@ -168,9 +166,10 @@ msgstr ""
 "objeto es eliminado por el recolector de basura, pero como no se garantiza "
 "que la recolección de basura suceda, dichos objetos también proporcionan una "
 "forma explícita de liberar el recurso externo, generalmente un método :meth:"
-"`close`. Se recomienda encarecidamente a los programas cerrar explícitamente "
-"dichos objetos. La declaración ':keyword:`try`...\\ :keyword:`finally`' y la "
-"declaración ':keyword:`with`' proporcionan formas convenientes de hacer esto."
+"`!close`. Se recomienda encarecidamente a los programas cerrar "
+"explícitamente dichos objetos. La declaración :keyword:`try` ... \\ :keyword:"
+"`finally` y la declaración :keyword:`with` proporcionan formas convenientes "
+"de hacer esto."
 
 #: ../Doc/reference/datamodel.rst:97
 msgid ""
@@ -194,7 +193,6 @@ msgstr ""
 "cambia si se cambia ese objeto mutable."
 
 #: ../Doc/reference/datamodel.rst:106
-#, fuzzy
 msgid ""
 "Types affect almost all aspects of object behavior.  Even the importance of "
 "object identity is affected in some sense: for immutable types, operations "
@@ -215,12 +213,15 @@ msgstr ""
 "sentido: para los tipos inmutables, las operaciones que calculan nuevos "
 "valores en realidad pueden retornar una referencia a cualquier objeto "
 "existente con el mismo tipo y valor, mientras que para los objetos mutables "
-"esto no está permitido. Por ejemplo, al hacer ``a = 1; b = 1``, ``a`` y "
-"``b`` puede o no referirse al mismo objeto con el valor 1, dependiendo de la "
-"implementación, pero al hacer ``c = []; d = []``, ``c`` y ``d`` se garantiza "
-"que se refieren a dos listas vacías diferentes, únicas y recién creadas. "
-"(Tenga en cuenta que ``c = d = []`` asigna el mismo objeto a ambos ``c`` y "
-"``d``.)"
+"esto no está permitido. Por ejemplo, al hacer ``a = 1; b = 1``, *a* y *b* "
+"puede o no referirse al mismo objeto con el valor 1, dependiendo de la "
+"implementación. Esto se debe a que :class:`int` es un tipo inmutable, así "
+"que la referencia a ``1`` se puede reusar. Este comportamiento depende de la "
+"implementación utilizada, así que no se debe confiar en ello, pero es algo "
+"que hay que tener en cuenta al utilizar pruebas de identidad de objetos. Sin "
+"embargo, al hacer ``c = []; d = []``, *c* y *d* se garantiza que se refieren "
+"a dos listas vacías diferentes, únicas y recién creadas. (Tenga en cuenta "
+"que ``e = f = []`` asigna el *mismo* objeto a ambos *e* y *f*.)"
 
 #: ../Doc/reference/datamodel.rst:124
 msgid "The standard type hierarchy"
@@ -277,7 +278,6 @@ msgid "NotImplemented"
 msgstr "NotImplemented"
 
 #: ../Doc/reference/datamodel.rst:165
-#, fuzzy
 msgid ""
 "This type has a single value.  There is a single object with this value. "
 "This object is accessed through the built-in name :data:`NotImplemented`. "
@@ -287,10 +287,10 @@ msgid ""
 "the operator.)  It should not be evaluated in a boolean context."
 msgstr ""
 "Este tipo tiene un solo valor. Hay un solo objeto con este valor. Se accede "
-"a este objeto a través del nombre integrado ``NotImplemented``. Los métodos "
-"numéricos y los métodos de comparación enriquecidos deben retornar este "
-"valor si no implementan la operación para los operandos proporcionados. (El "
-"intérprete intentará entonces la operación reflejada, o alguna otra "
+"a este objeto a través del nombre integrado :data:`NotImplemented`. Los "
+"métodos numéricos y los métodos de comparación enriquecidos deben retornar "
+"este valor si no implementan la operación para los operandos proporcionados. "
+"(El intérprete intentará entonces la operación reflejada, o alguna otra "
 "alternativa, dependiendo del operador). No debe evaluarse en un contexto "
 "booleano."
 
@@ -299,14 +299,13 @@ msgid "See :ref:`implementing-the-arithmetic-operations` for more details."
 msgstr "Vea :ref:`implementing-the-arithmetic-operations` para más detalles."
 
 #: ../Doc/reference/datamodel.rst:176
-#, fuzzy
 msgid ""
 "Evaluating :data:`NotImplemented` in a boolean context is deprecated. While "
 "it currently evaluates as true, it will emit a :exc:`DeprecationWarning`. It "
 "will raise a :exc:`TypeError` in a future version of Python."
 msgstr ""
-"La evaluación de ``NotImplemented`` en un contexto booleano está en desuso. "
-"Si bien actualmente se evalúa como verdadero, lanzará un :exc:"
+"La evaluación de :data:`NotImplemented` en un contexto booleano está en "
+"desuso. Si bien actualmente se evalúa como verdadero, emitirá un :exc:"
 "`DeprecationWarning`. Lanzará un :exc:`TypeError` en una versión futura de "
 "Python."
 
@@ -386,7 +385,6 @@ msgid "A sign is shown only when the number is negative."
 msgstr "Solo se muestra un signo cuando el número es negativo."
 
 #: ../Doc/reference/datamodel.rst:222
-#, fuzzy
 msgid ""
 "Python distinguishes between integers, floating-point numbers, and complex "
 "numbers:"
@@ -464,7 +462,6 @@ msgid ":class:`numbers.Real` (:class:`float`)"
 msgstr ":class:`numbers.Real` (:class:`float`)"
 
 #: ../Doc/reference/datamodel.rst:271
-#, fuzzy
 msgid ""
 "These represent machine-level double precision floating-point numbers. You "
 "are at the mercy of the underlying machine architecture (and C or Java "
@@ -488,7 +485,6 @@ msgid ":class:`numbers.Complex` (:class:`complex`)"
 msgstr ":class:`numbers.Complex` (:class:`complex`)"
 
 #: ../Doc/reference/datamodel.rst:287
-#, fuzzy
 msgid ""
 "These represent complex numbers as a pair of machine-level double precision "
 "floating-point numbers.  The same caveats apply as for floating-point "
@@ -506,7 +502,6 @@ msgid "Sequences"
 msgstr "Secuencias"
 
 #: ../Doc/reference/datamodel.rst:303
-#, fuzzy
 msgid ""
 "These represent finite ordered sets indexed by non-negative numbers. The "
 "built-in function :func:`len` returns the number of items of a sequence. "
@@ -520,10 +515,12 @@ msgstr ""
 "negativos. La función incorporada :func:`len` retorna el número de elementos "
 "de una secuencia. Cuando la longitud de una secuencia es *n*, el conjunto de "
 "índices contiene los números 0, 1, ..., *n*-1. El elemento *i* de la "
-"secuencia *a* se selecciona mediante ``a[i]``."
+"secuencia *a* se selecciona mediante ``a[i]``. Algunas secuencias, incluidas "
+"las secuencias integradas, interpretan los subíndices negativos sumando la "
+"longitud de la secuencia. Por ejemplo, ``a[-2]`` es igual a ``a[n-2]``, el "
+"penúltimo elemento de la secuencia a con longitud ``n``."
 
 #: ../Doc/reference/datamodel.rst:313
-#, fuzzy
 msgid ""
 "Sequences also support slicing: ``a[i:j]`` selects all items with index *k* "
 "such that *i* ``<=`` *k* ``<`` *j*.  When used as an expression, a slice is "
@@ -531,10 +528,10 @@ msgid ""
 "applies to negative slice positions."
 msgstr ""
 "Las secuencias también admiten segmentación: ``a[i:j]`` selecciona todos los "
-"elementos con índice *k* de modo que *i* ``<=`` *k* ``<`` *j*.  Cuando se "
-"usa como una expresión, un segmento es una secuencia del mismo tipo. Esto "
-"implica que el conjunto de índices se vuelve a enumerar para que comience en "
-"0."
+"elementos con índice *k* de modo que *i* ``<=`` *k* ``<`` *j*. Cuando se usa "
+"como una expresión, un segmento es una secuencia del mismo tipo. El "
+"comentario anterior sobre los índices negativos también aplica a las "
+"posiciones de segmento negativas."
 
 #: ../Doc/reference/datamodel.rst:318
 msgid ""
@@ -626,7 +623,6 @@ msgid "Bytes"
 msgstr "Bytes"
 
 #: ../Doc/reference/datamodel.rst:378
-#, fuzzy
 msgid ""
 "A bytes object is an immutable array.  The items are 8-bit bytes, "
 "represented by integers in the range 0 <= x < 256.  Bytes literals (like "
@@ -635,8 +631,8 @@ msgid ""
 "`~bytes.decode` method."
 msgstr ""
 "Un objeto de bytes es una colección inmutable. Los elementos son bytes de 8 "
-"bits, representados por enteros en el rango 0 <= x <256. Literales de bytes "
-"(como ``b'abc'``) y el  constructor incorporado :func:`bytes()` se puede "
+"bits, representados por enteros en el rango 0 <= x < 256. Literales de bytes "
+"(como ``b'abc'``) y el constructor incorporado :func:`bytes` se puede "
 "utilizar para crear objetos de bytes. Además, los objetos de bytes se pueden "
 "decodificar en cadenas de caracteres a través del método :meth:`~bytes."
 "decode`."
@@ -827,12 +823,11 @@ msgstr ""
 "lugar de mantener su lugar anterior."
 
 #: ../Doc/reference/datamodel.rst:499
-#, fuzzy
 msgid ""
 "Dictionaries are mutable; they can be created by the ``{}`` notation (see "
 "section :ref:`dict`)."
 msgstr ""
-"Los diccionarios son mutables; pueden ser creados por la notación ``{...}`` "
+"Los diccionarios son mutables; pueden ser creados por la notación ``{}`` "
 "(vea la sección :ref:`dict`)."
 
 #: ../Doc/reference/datamodel.rst:506
@@ -884,9 +879,8 @@ msgstr ""
 
 #: ../Doc/reference/datamodel.rst:545 ../Doc/reference/datamodel.rst:1206
 #: ../Doc/reference/datamodel.rst:1403
-#, fuzzy
 msgid "Special read-only attributes"
-msgstr "Atributos especiales:"
+msgstr "Atributos especiales de solo lectura"
 
 #: ../Doc/reference/datamodel.rst:555 ../Doc/reference/datamodel.rst:589
 #: ../Doc/reference/datamodel.rst:981
@@ -899,25 +893,22 @@ msgid "Meaning"
 msgstr "Significado"
 
 #: ../Doc/reference/datamodel.rst:559
-#, fuzzy
 msgid ""
 "A reference to the :class:`dictionary <dict>` that holds the function's :ref:"
 "`global variables <naming>` -- the global namespace of the module in which "
 "the function was defined."
 msgstr ""
-"Una referencia al diccionario que contiene las variables globales de la "
-"función --- el espacio de nombres global del módulo en el que se definió la "
-"función."
+"Una referencia al :class:`dictionary <dict>` que contiene las :ref:`global "
+"variables <naming>` de la función -- el espacio de nombres global del módulo "
+"en el que se definió la función."
 
 #: ../Doc/reference/datamodel.rst:564
-#, fuzzy
 msgid ""
 "``None`` or a :class:`tuple` of cells that contain bindings for the "
 "function's free variables."
 msgstr ""
-"``None`` o una tupla de celdas que contienen enlaces para las variables "
-"libres de la función. Vea a continuación para obtener información sobre el "
-"atributo ``cell_contents``."
+"``None`` o una :class:`tuple` de celdas que contienen enlaces para las "
+"variables libres de la función."
 
 #: ../Doc/reference/datamodel.rst:567
 msgid ""
@@ -928,34 +919,33 @@ msgstr ""
 "para obtener el valor de la celda, así como para establecer el valor."
 
 #: ../Doc/reference/datamodel.rst:571 ../Doc/reference/datamodel.rst:1445
-#, fuzzy
 msgid "Special writable attributes"
-msgstr "Atributos especiales:"
+msgstr "Atributos especiales de escritura"
 
 #: ../Doc/reference/datamodel.rst:584
-#, fuzzy
 msgid "Most of these attributes check the type of the assigned value:"
-msgstr ""
-"La mayoría de los atributos etiquetados \"Escribible\" verifican el tipo del "
-"valor asignado."
+msgstr "La mayoría de estos atributos verifican el tipo del valor asignado:"
 
 #: ../Doc/reference/datamodel.rst:593
-#, fuzzy
 msgid "The function's documentation string, or ``None`` if unavailable."
 msgstr ""
-"El texto de documentación del módulo, o ``None`` si no está disponible."
+"El texto de documentación de la función, o ``None`` si no está disponible."
 
 #: ../Doc/reference/datamodel.rst:596
 msgid ""
 "The function's name. See also: :attr:`__name__ attributes <definition."
 "__name__>`."
 msgstr ""
+"El nombre de la función. Vea también: :attr:`atributos __name__ <definition."
+"__name__>`."
 
 #: ../Doc/reference/datamodel.rst:600
 msgid ""
 "The function's :term:`qualified name`. See also: :attr:`__qualname__ "
 "attributes <definition.__qualname__>`."
 msgstr ""
+"El :term:`qualified name` de la función. Vea también :attr:`atributos "
+"__qualname__ <definition.__qualname__>`."
 
 #: ../Doc/reference/datamodel.rst:606
 msgid ""
@@ -966,63 +956,60 @@ msgstr ""
 "disponible."
 
 #: ../Doc/reference/datamodel.rst:610
-#, fuzzy
 msgid ""
 "A :class:`tuple` containing default :term:`parameter` values for those "
 "parameters that have defaults, or ``None`` if no parameters have a default "
 "value."
 msgstr ""
-"Una tupla que contiene valores de argumento predeterminados para aquellos "
-"argumentos que tienen valores predeterminados, o ``None`` si ningún "
-"argumento tiene un valor predeterminado."
+"Una :class:`tuple` que contiene valores de :term:`parameter` predeterminados "
+"para aquellos argumentos que tienen valores predeterminados, o ``None`` si "
+"ningún parámetro tiene un valor predeterminado."
 
 #: ../Doc/reference/datamodel.rst:615
-#, fuzzy
 msgid ""
 "The :ref:`code object <code-objects>` representing the compiled function "
 "body."
-msgstr "El objeto de código que representa el cuerpo de la función compilada."
+msgstr ""
+"El :ref:`objeto de código <code-objects>` que representa el cuerpo de la "
+"función compilada."
 
 #: ../Doc/reference/datamodel.rst:619
-#, fuzzy
 msgid ""
 "The namespace supporting arbitrary function attributes. See also: :attr:"
 "`__dict__ attributes <object.__dict__>`."
-msgstr "El espacio de nombres que admite atributos de funciones arbitrarias."
+msgstr ""
+"El espacio de nombres que admite atributos de funciones arbitrarias. Vea "
+"también: :attr:`atributos __dict__ <object.__dict__>`."
 
 #: ../Doc/reference/datamodel.rst:623
-#, fuzzy
 msgid ""
 "A :class:`dictionary <dict>` containing annotations of :term:`parameters "
 "<parameter>`. The keys of the dictionary are the parameter names, and "
 "``'return'`` for the return annotation, if provided. See also: :ref:"
 "`annotations-howto`."
 msgstr ""
-"Un diccionario que contiene anotaciones de parámetros. Las claves del dict "
-"son los nombres de los parámetros, y ``'return'`` para la anotación de "
-"retorno, si se proporciona. Para más información sobre trabajar con este "
-"atributo, ve :ref:`annotations-howto`."
+"Un :class:`diccionario <dict>` que contiene anotaciones de :term:`parámetros "
+"<parameter>`. Las claves del diccionario son los nombres de los parámetros, "
+"y ``'return'`` para la anotación de retorno, si se proporciona. Para más "
+"información sobre trabajar con este atributo, ve :ref:`annotations-howto`."
 
 #: ../Doc/reference/datamodel.rst:630
-#, fuzzy
 msgid ""
 "A :class:`dictionary <dict>` containing defaults for keyword-only :term:"
 "`parameters <parameter>`."
 msgstr ""
-"Un diccionario que contiene valores predeterminados para parámetros de solo "
-"palabras clave."
+"Un :class:`diccionario <dict>` que contiene valores predeterminados para :"
+"term:`parámetros <parameter>` de solo palabras clave."
 
 #: ../Doc/reference/datamodel.rst:634
-#, fuzzy
 msgid ""
 "A :class:`tuple` containing the :ref:`type parameters <type-params>` of a :"
 "ref:`generic function <generic-functions>`."
 msgstr ""
-"Una tupla que contiene el :ref:`type parameters <type-params>` de un :ref:"
-"`generic function <generic-functions>`."
+"Un objeto :class:`tuple` que contiene los :ref:`parámetros de tipo <type-"
+"params>` de una :ref:`función genérica <generic-functions>`."
 
 #: ../Doc/reference/datamodel.rst:639
-#, fuzzy
 msgid ""
 "Function objects also support getting and setting arbitrary attributes, "
 "which can be used, for example, to attach metadata to functions.  Regular "
@@ -1031,10 +1018,7 @@ msgstr ""
 "Los objetos de función también admiten la obtención y configuración de "
 "atributos arbitrarios, que se pueden usar, por ejemplo, para adjuntar "
 "metadatos a funciones. La notación de puntos de atributo regular se utiliza "
-"para obtener y establecer dichos atributos. *Tenga en cuenta que la "
-"implementación actual solo admite atributos de función en funciones "
-"definidas por el usuario. Los atributos de función en funciones integradas "
-"pueden ser compatibles en el futuro.*"
+"para obtener y establecer dichos atributos."
 
 #: ../Doc/reference/datamodel.rst:645
 msgid ""
@@ -1042,6 +1026,9 @@ msgid ""
 "defined functions. Function attributes on :ref:`built-in functions <builtin-"
 "functions>` may be supported in the future."
 msgstr ""
+"La implementación actual de CPython solo admite atributos de función en "
+"funciones definidas por el usuario. Los atributos de función en :ref:"
+"`funciones incorporadas <builtin-functions>` se pueden soportar en el futuro."
 
 #: ../Doc/reference/datamodel.rst:650
 msgid ""
@@ -1049,6 +1036,9 @@ msgid ""
 "its :ref:`code object <code-objects>` (accessible via the :attr:`~function."
 "__code__` attribute)."
 msgstr ""
+"Se puede obtener información adicional sobre la definición de una función a "
+"partir de su :ref:`código de objeto <code-objects>` (accesible a través del "
+"atributo :attr:`~function.__code__`)."
 
 #: ../Doc/reference/datamodel.rst:658
 msgid "Instance methods"
@@ -1063,19 +1053,21 @@ msgstr ""
 "cualquier objeto invocable (normalmente una función definida por el usuario)."
 
 #: ../Doc/reference/datamodel.rst:675 ../Doc/reference/datamodel.rst:1541
-#, fuzzy
 msgid "Special read-only attributes:"
-msgstr "Atributos especiales:"
+msgstr "Atributos especiales de solo lectura:"
 
 #: ../Doc/reference/datamodel.rst:680
 msgid ""
 "Refers to the class instance object to which the method is :ref:`bound "
 "<method-binding>`"
 msgstr ""
+"Hace referencia al objeto de instancia de la clase al que está :ref:"
+"`vinculado <method-binding>` el método"
 
 #: ../Doc/reference/datamodel.rst:684
 msgid "Refers to the original :ref:`function object <user-defined-funcs>`"
 msgstr ""
+"Hace referencia al :ref:`objeto de función <user-defined-funcs>` original"
 
 #: ../Doc/reference/datamodel.rst:687
 msgid ""
@@ -1083,32 +1075,35 @@ msgid ""
 "__doc__>`). A :class:`string <str>` if the original function had a "
 "docstring, else ``None``."
 msgstr ""
+"La documentación del método (igual que :attr:`method.__func__.__doc__ "
+"<function.__doc__>`). Una :class:`cadena de caracteres <str>` si la función "
+"original tenía un docstring, de lo contrario ``None``."
 
 #: ../Doc/reference/datamodel.rst:693
 msgid ""
 "The name of the method (same as :attr:`method.__func__.__name__ <function."
 "__name__>`)"
 msgstr ""
+"El nombre del método (igual que :attr:`method.__func__.__name__ <function."
+"__name__>`)"
 
 #: ../Doc/reference/datamodel.rst:697
-#, fuzzy
 msgid ""
 "The name of the module the method was defined in, or ``None`` if unavailable."
 msgstr ""
-"El nombre del módulo en el que se definió la función, o ``None`` si no está "
+"El nombre del módulo en el que se definió el método, o ``None`` si no está "
 "disponible."
 
 #: ../Doc/reference/datamodel.rst:700
-#, fuzzy
 msgid ""
 "Methods also support accessing (but not setting) the arbitrary function "
 "attributes on the underlying :ref:`function object <user-defined-funcs>`."
 msgstr ""
 "Los métodos también admiten obtener (más no establecer) los atributos "
-"arbitrarios de la función en el objeto de función subyacente."
+"arbitrarios de la función en el :ref:`objeto de función <user-defined-"
+"funcs>` subyacente."
 
 #: ../Doc/reference/datamodel.rst:703
-#, fuzzy
 msgid ""
 "User-defined method objects may be created when getting an attribute of a "
 "class (perhaps via an instance of that class), if that attribute is a user-"
@@ -1117,11 +1112,10 @@ msgid ""
 msgstr ""
 "Los objetos de métodos definidos por usuarios pueden ser creados al obtener "
 "el atributo de una clase (probablemente a través de la instancia de dicha "
-"clase), si tal atributo es el objeto de una función definida por el usuario "
-"o el objeto del método de una clase."
+"clase), si tal atributo es un :ref:`objeto de función <user-defined-funcs>` "
+"definido por el usuario o un objeto :class:`classmethod`."
 
 #: ../Doc/reference/datamodel.rst:710
-#, fuzzy
 msgid ""
 "When an instance method object is created by retrieving a user-defined :ref:"
 "`function object <user-defined-funcs>` from a class via one of its "
@@ -1129,27 +1123,25 @@ msgid ""
 "method object is said to be *bound*.  The new method's :attr:`~method."
 "__func__` attribute is the original function object."
 msgstr ""
-"Cuando un objeto de instancia de método es creado al obtener un objeto de "
-"función definida por el usuario desde una clase a través de una de sus "
-"instancias, su atributo :attr:`__self__` es la instancia, y el objeto de "
-"método se dice que está enlazado.  El nuevo atributo de método :attr:"
-"`__func__` es el objeto de función original."
+"Cuando un objeto de instancia de método es creado al obtener un :ref:`objeto "
+"de función <user-defined-funcs>` definida por el usuario desde una clase a "
+"través de una de sus instancias, su atributo :attr:`~method.__self__` es la "
+"instancia, y el objeto de método se dice que está *enlazado*. El nuevo "
+"atributo de método :attr:`__func__` es el objeto de función original."
 
 #: ../Doc/reference/datamodel.rst:716
-#, fuzzy
 msgid ""
 "When an instance method object is created by retrieving a :class:"
 "`classmethod` object from a class or instance, its :attr:`~method.__self__` "
 "attribute is the class itself, and its :attr:`~method.__func__` attribute is "
 "the function object underlying the class method."
 msgstr ""
-"Cuando un objeto de instancia de método es creado al obtener un objeto de "
-"método de clase a partir de una clase o instancia, su atributo :attr:"
-"`__self__` es la clase misma, y su atributo :attr:`__func__` es el objeto de "
-"función subyacente al método de la clase."
+"Cuando un objeto de instancia de método es creado al obtener un objeto :"
+"class:`classmethod` a partir de una clase o instancia, su atributo :attr:"
+"`~method.__self__` es la clase misma, y su atributo :attr:`~method.__func__` "
+"es el objeto de función subyacente al método de la clase."
 
 #: ../Doc/reference/datamodel.rst:721
-#, fuzzy
 msgid ""
 "When an instance method object is called, the underlying function (:attr:"
 "`~method.__func__`) is called, inserting the class instance (:attr:`~method."
@@ -1159,14 +1151,13 @@ msgid ""
 "f(x, 1)``."
 msgstr ""
 "Cuando el objeto de la instancia de método es invocado, la función "
-"subyacente (:attr:`__func__`) es llamada, insertando la instancia de clase (:"
-"attr:`__self__`) delante de la lista de argumentos.  Por ejemplo, cuando :"
-"class:`C` es una clase que contiene la definición de una función :meth:`f`, "
-"y ``x`` es una instancia de :class:`C`, invocar ``x.f(1)`` es equivalente a "
-"invocar ``C.f(x, 1)``."
+"subyacente (:attr:`~method.__func__`) es llamada, insertando la instancia de "
+"clase (:attr:`~method.__self__`) delante de la lista de argumentos. Por "
+"ejemplo, cuando :class:`!C` es una clase que contiene la definición de una "
+"función :meth:`!f`, y ``x`` es una instancia de :class:`!C`, invocar ``x."
+"f(1)`` es equivalente a invocar ``C.f(x, 1)``."
 
 #: ../Doc/reference/datamodel.rst:728
-#, fuzzy
 msgid ""
 "When an instance method object is derived from a :class:`classmethod` "
 "object, the \"class instance\" stored in :attr:`~method.__self__` will "
@@ -1174,10 +1165,11 @@ msgid ""
 "f(1)`` is equivalent to calling ``f(C,1)`` where ``f`` is the underlying "
 "function."
 msgstr ""
-"Cuando el objeto de instancia de método es derivado del objeto del método de "
-"clase, la “instancia de clase” almacenada en :attr:`__self__` en realidad "
-"será la clase misma, de manera que invocar ya sea ``x.f(1)`` o ``C.f(1)`` es "
-"equivalente a invocar ``f(C,1)`` donde ``f`` es la función subyacente."
+"Cuando el objeto de instancia de método es derivado del objeto :class:"
+"`classmethod`, la \"instancia de clase\" almacenada en :attr:`~method."
+"__self__` en realidad será la clase misma, de manera que invocar ya sea ``x."
+"f(1)`` o ``C.f(1)`` es equivalente a invocar ``f(C,1)`` donde ``f`` es la "
+"función subyacente."
 
 #: ../Doc/reference/datamodel.rst:733
 msgid ""
@@ -1185,6 +1177,9 @@ msgid ""
 "a class instance are not converted to bound methods; this *only* happens "
 "when the function is an attribute of the class."
 msgstr ""
+"Es importante señalar que las funciones definidas por el usuario que son "
+"atributos de una instancia de una clase no se convierten en métodos "
+"enlazados; esto *solo* ocurre cuando la función es un atributo de la clase."
 
 #: ../Doc/reference/datamodel.rst:740
 msgid "Generator functions"
@@ -1270,7 +1265,6 @@ msgid "Built-in functions"
 msgstr "Funciones incorporadas"
 
 #: ../Doc/reference/datamodel.rst:803
-#, fuzzy
 msgid ""
 "A built-in function object is a wrapper around a C function.  Examples of "
 "built-in functions are :func:`len` and :func:`math.sin` (:mod:`math` is a "
@@ -1278,49 +1272,43 @@ msgid ""
 "determined by the C function. Special read-only attributes:"
 msgstr ""
 "Un objeto de función incorporada es un envoltorio (wrapper) alrededor de una "
-"función C.  Ejemplos de funciones incorporadas son :func:`len` y :func:`math."
+"función C. Ejemplos de funciones incorporadas son :func:`len` y :func:`math."
 "sin` (:mod:`math` es un módulo estándar incorporado). El número y tipo de "
 "argumentos son determinados por la función C. Atributos especiales de solo "
-"lectura: :attr:`__doc__` es la cadena de documentación de la función, o "
-"``None`` si no se encuentra disponible; :attr:`~definition.__name__` es el "
-"nombre de la función; :attr:`__init__` es establecido como ``None`` (sin "
-"embargo ver el siguiente elemento); :attr:`__module__` es el nombre del "
-"módulo en el que la función fue definida o ``None`` si no se encuentra "
-"disponible."
+"lectura:"
 
 #: ../Doc/reference/datamodel.rst:808
-#, fuzzy
 msgid ""
 ":attr:`!__doc__` is the function's documentation string, or ``None`` if "
 "unavailable. See :attr:`function.__doc__`."
 msgstr ""
-"El texto de documentación de la función, o ``None`` si no está disponible; "
-"no heredado por subclases."
+":attr:`!__doc__` es el texto de documentación de la función, o ``None`` si "
+"no está disponible. Vea :attr:`function.__doc__`."
 
 #: ../Doc/reference/datamodel.rst:810
 msgid ""
 ":attr:`!__name__` is the function's name. See :attr:`function.__name__`."
 msgstr ""
+":attr:`!__name__` es el nombre de la función. Vea :attr:`function.__name__`."
 
 #: ../Doc/reference/datamodel.rst:811
 msgid ":attr:`!__self__` is set to ``None`` (but see the next item)."
 msgstr ""
+":attr:`!__self__` se establece en ``None`` (pero vea el siguiente punto)."
 
 #: ../Doc/reference/datamodel.rst:812
-#, fuzzy
 msgid ""
 ":attr:`!__module__` is the name of the module the function was defined in or "
 "``None`` if unavailable. See :attr:`function.__module__`."
 msgstr ""
-"El nombre del módulo en el que se definió la función, o ``None`` si no está "
-"disponible."
+":attr:`!__module__` es el nombre del módulo en el que se definió la función "
+"o ``None`` si no está disponible. Vea :attr:`function.__module__`."
 
 #: ../Doc/reference/datamodel.rst:820
 msgid "Built-in methods"
 msgstr "Métodos incorporados"
 
 #: ../Doc/reference/datamodel.rst:827
-#, fuzzy
 msgid ""
 "This is really a different disguise of a built-in function, this time "
 "containing an object passed to the C function as an implicit extra "
@@ -1332,17 +1320,17 @@ msgid ""
 msgstr ""
 "Éste es realmente un disfraz distinto de una función incorporada, esta vez "
 "teniendo un objeto que se pasa a la función C como un argumento extra "
-"implícito.  Un ejemplo de un método incorporado es ``alist.append()``, "
+"implícito. Un ejemplo de un método incorporado es ``alist.append()``, "
 "asumiendo que *alist* es un objeto de lista. En este caso, el atributo "
-"especial de solo lectura :attr:`__self__` es establecido al objeto indicado "
-"por *alist*."
+"especial de solo lectura :attr:`!__self__` es establecido al objeto indicado "
+"por *alist*. (El atributo tiene la misma semántica que con :attr:`otros "
+"métodos de instancia <method.__self__>`.)"
 
 #: ../Doc/reference/datamodel.rst:837
 msgid "Classes"
 msgstr "Clases"
 
 #: ../Doc/reference/datamodel.rst:839
-#, fuzzy
 msgid ""
 "Classes are callable.  These objects normally act as factories for new "
 "instances of themselves, but variations are possible for class types that "
@@ -1353,7 +1341,7 @@ msgstr ""
 "Las clases son invocables. Estos objetos normalmente actúan como fábricas "
 "para nuevas instancias de sí mismos, pero son posibles variaciones para los "
 "tipos de clases que anulan :meth:`~object.__new__`. Los argumentos de la "
-"llamada se pasan a :meth:`__new__` y, en el caso típico, a :meth:`~object."
+"llamada se pasan a :meth:`!__new__` y, en el caso típico, a :meth:`~object."
 "__init__` para inicializar la nueva instancia."
 
 #: ../Doc/reference/datamodel.rst:847
@@ -1373,7 +1361,6 @@ msgid "Modules"
 msgstr "Módulos"
 
 #: ../Doc/reference/datamodel.rst:860
-#, fuzzy
 msgid ""
 "Modules are a basic organizational unit of Python code, and are created by "
 "the :ref:`import system <importsystem>` as invoked either by the :keyword:"
@@ -1388,16 +1375,16 @@ msgid ""
 "done)."
 msgstr ""
 "Los módulos son una unidad básica organizacional en código Python, y son "
-"creados por el :ref:`import system <importsystem>` al ser invocados ya sea "
-"por la declaración :keyword:`import`, o invocando funciones como :func:"
-"`importlib.import_module` y la incorporada :func:`__import__`.  Un objeto de "
-"módulo tiene un espacio de nombres implementado por un objeto de diccionario "
-"(éste es el diccionario al que hace referencia el atributo de funciones "
-"``__globals__`` definido en el módulo).  Las referencias de atributos son "
-"traducidas a búsquedas en este diccionario, p. ej., ``m.x`` es equivalente a "
-"``m.__dict__[“x”]``. Un objeto de módulo no contiene el objeto de código "
-"utilizado para iniciar el módulo (ya que no es necesario una vez que la "
-"inicialización es realizada)."
+"creados por el :ref:`sistema de importación <importsystem>` al ser invocados "
+"ya sea por la declaración :keyword:`import`, o invocando funciones como :"
+"func:`importlib.import_module` y la incorporada :func:`__import__`. Un "
+"objeto de módulo tiene un espacio de nombres implementado por un objeto :"
+"class:`diccionario <dict>` (éste es el diccionario al que hace referencia el "
+"atributo de funciones :attr:`~function.__globals__` definido en el módulo). "
+"Las referencias de atributos son traducidas a búsquedas en este diccionario, "
+"p. ej., ``m.x`` es equivalente a ``m.__dict__[\"x\"]``. Un objeto de módulo "
+"no contiene el objeto de código utilizado para iniciar el módulo (ya que no "
+"es necesario una vez que la inicialización es realizada)."
 
 #: ../Doc/reference/datamodel.rst:873
 msgid ""
@@ -1488,7 +1475,6 @@ msgid "Custom classes"
 msgstr "Clases personalizadas"
 
 #: ../Doc/reference/datamodel.rst:925
-#, fuzzy
 msgid ""
 "Custom class types are typically created by class definitions (see section :"
 "ref:`class`).  A class has a namespace implemented by a dictionary object. "
@@ -1503,21 +1489,19 @@ msgid ""
 "found at :ref:`python_2.3_mro`."
 msgstr ""
 "Los tipos de clases personalizadas son normalmente creadas por definiciones "
-"de clases (ver sección :ref:`class`).  Una clase tiene implementado un "
+"de clases (ver sección :ref:`class`). Una clase tiene implementado un "
 "espacio de nombres por un objeto de diccionario. Las referencias de "
 "atributos de clase son traducidas a búsquedas en este diccionario, p. ej., "
-"``C.x`` es traducido a ``C.__dict__[“x”]`` (aunque hay una serie de enlaces "
-"que permiten la ubicación de atributos por otros medios). Cuando el nombre "
-"de atributo no es encontrado ahí, la búsqueda de atributo continúa en las "
-"clases base. Esta búsqueda de las clases base utiliza la orden de resolución "
-"de métodos C3 que se comporta correctamente aún en la presencia de "
-"estructuras de herencia ‘diamante’ donde existen múltiples rutas de herencia "
-"que llevan a un ancestro común. Detalles adicionales en el MRO C3 utilizados "
-"por Python pueden ser encontrados en la documentación correspondiente a la "
-"versión 2.3 en https://www.python.org/download/releases/2.3/mro/."
+"``C.x`` es traducido a ``C.__dict__[\"x\"]`` (aunque hay una serie de "
+"enlaces que permiten la ubicación de atributos por otros medios). Cuando el "
+"nombre de atributo no es encontrado ahí, la búsqueda de atributo continúa en "
+"las clases base. Esta búsqueda de las clases base utiliza la orden de "
+"resolución de métodos C3 que se comporta correctamente aún en la presencia "
+"de estructuras de herencia 'diamante' donde existen múltiples rutas de "
+"herencia que llevan a un ancestro común. Detalles adicionales en el MRO C3 "
+"utilizados por Python pueden ser encontrados en :ref:`python_2.3_mro`."
 
 #: ../Doc/reference/datamodel.rst:946
-#, fuzzy
 msgid ""
 "When a class attribute reference (for class :class:`!C`, say) would yield a "
 "class method object, it is transformed into an instance method object whose :"
@@ -1528,13 +1512,13 @@ msgid ""
 "contained in its :attr:`~object.__dict__`."
 msgstr ""
 "Cuando la referencia de un atributo de clase (digamos, para la clase :class:"
-"`C`) produce un objeto de método de clase, éste es transformado a un objeto "
-"de método de instancia cuyo atributo :attr:`__self__` es :class:`C`.  Cuando "
-"produce un objeto de un método estático, éste es transformado al objeto "
-"envuelto por el objeto de método estático. Ver sección :ref:`descriptors` "
-"para otra manera en la que los atributos obtenidos de una clase pueden "
-"diferir de los que en realidad están contenidos en su :attr:`~object."
-"__dict__`."
+"`!C`) produce un objeto de método de clase, éste es transformado a un objeto "
+"de método de instancia cuyo atributo :attr:`~method.__self__` es :class:`!"
+"C`. Cuando produce un objeto :class:`staticmethod`, éste es transformado al "
+"objeto envuelto por el objeto de método estático. Ver sección :ref:"
+"`descriptors` para otra manera en la que los atributos obtenidos de una "
+"clase pueden diferir de los que en realidad están contenidos en su :attr:"
+"`~object.__dict__`."
 
 #: ../Doc/reference/datamodel.rst:957
 msgid ""
@@ -1553,21 +1537,24 @@ msgstr ""
 "instancia de clase (ver a continuación)."
 
 #: ../Doc/reference/datamodel.rst:965 ../Doc/reference/datamodel.rst:1112
-#, fuzzy
 msgid "Special attributes"
-msgstr "Atributos especiales:"
+msgstr "Atributos especiales"
 
 #: ../Doc/reference/datamodel.rst:985
 msgid ""
 "The class's name. See also: :attr:`__name__ attributes <definition."
 "__name__>`."
 msgstr ""
+"El nombre de la clase. Vea también: :attr:`atributos __name__ <definition."
+"__name__>`."
 
 #: ../Doc/reference/datamodel.rst:989
 msgid ""
 "The class's :term:`qualified name`. See also: :attr:`__qualname__ attributes "
 "<definition.__qualname__>`."
 msgstr ""
+"El :term:`qualified name` de la clase. Vea también: :attr:`atributos "
+"__qualname__ <definition.__qualname__>`."
 
 #: ../Doc/reference/datamodel.rst:993
 msgid "The name of the module in which the class was defined."
@@ -1579,6 +1566,9 @@ msgid ""
 "of the class's namespace. See also: :attr:`__dict__ attributes <object."
 "__dict__>`."
 msgstr ""
+"Un :class:`proxy de mapeo <types.MappingProxyType>` que proporciona una "
+"vista de solo lectura del espacio de nombres de la clase. Vea también: :attr:"
+"`atributos __dict__ <object.__dict__>`."
 
 #: ../Doc/reference/datamodel.rst:1001
 msgid ""
@@ -1586,26 +1576,27 @@ msgid ""
 "defined as ``class X(A, B, C)``, ``X.__bases__`` will be exactly equal to "
 "``(A, B, C)``."
 msgstr ""
+"Un objeto :class:`tuple` que contiene las bases de la clase. En la mayoría "
+"de los casos, para una clase definida como ``class X(A, B, C)``, ``X."
+"__bases__`` será exactamente igual a ``(A, B, C)``."
 
 #: ../Doc/reference/datamodel.rst:1006
-#, fuzzy
 msgid ""
 "The class's documentation string, or ``None`` if undefined. Not inherited by "
 "subclasses."
 msgstr ""
-"El texto de documentación de la función, o ``None`` si no está disponible; "
-"no heredado por subclases."
+"El texto de documentación de la clase, o ``None`` si no está disponible. No "
+"heredado por subclases."
 
 #: ../Doc/reference/datamodel.rst:1010
-#, fuzzy
 msgid ""
 "A dictionary containing :term:`variable annotations <variable annotation>` "
 "collected during class body execution. For best practices on working with :"
 "attr:`!__annotations__`, please see :ref:`annotations-howto`."
 msgstr ""
-"Un diccionario conteniendo el :term:`variable annotations <variable "
+"Un diccionario que contiene :term:`anotaciones de variable <variable "
 "annotation>` recopilados durante la ejecución del cuerpo de la clase. Para "
-"buenas prácticas sobre trabajar con :attr:`__annotations__`, por favor ve :"
+"buenas prácticas sobre trabajar con :attr:`!__annotations__`, por favor ve :"
 "ref:`annotations-howto`."
 
 #: ../Doc/reference/datamodel.rst:1017
@@ -1615,21 +1606,26 @@ msgid ""
 "attribute may not exist for some classes. Use :func:`inspect."
 "get_annotations` to retrieve class annotations safely."
 msgstr ""
+"Acceder directamente al atributo :attr:`!__annotations__` de un objeto de "
+"clase puede producir resultados incorrectos en la presencia de metaclases. "
+"Además, el atributo puede no existir para algunas clases. Use :func:`inspect."
+"get_annotations` para recuperar anotaciones de clase de forma segura."
 
 #: ../Doc/reference/datamodel.rst:1024
-#, fuzzy
 msgid ""
 "A :class:`tuple` containing the :ref:`type parameters <type-params>` of a :"
 "ref:`generic class <generic-classes>`."
 msgstr ""
-"Una tupla que contiene el :ref:`type parameters <type-params>` de un :ref:"
-"`generic class <generic-classes>`."
+"Una objeto :class:`tuple` que contiene :ref:`parámetros de tipo <type-"
+"params>` de una :ref:`clase genérica <generic-classes>`."
 
 #: ../Doc/reference/datamodel.rst:1030
 msgid ""
 "A :class:`tuple` containing names of attributes of this class which are "
 "assigned through ``self.X`` from any function in its body."
 msgstr ""
+"Un objeto :class:`tuple` que contiene nombres de atributos de esta clase que "
+"se asignan a través de ``self.X`` desde cualquier función en su cuerpo."
 
 #: ../Doc/reference/datamodel.rst:1036
 msgid ""
@@ -1637,23 +1633,29 @@ msgid ""
 "decorators. Setting the :attr:`__module__` attribute removes the :attr:`!"
 "__firstlineno__` item from the type's dictionary."
 msgstr ""
+"El número de línea de la primer línea de la definición de clase, incluidos "
+"los decoradores. Al establecer el atributo :attr:`__module__` se elimina el "
+"elemento :attr:`!__firstlineno__` del diccionario del tipo."
 
 #: ../Doc/reference/datamodel.rst:1044
 msgid ""
 "The :class:`tuple` of classes that are considered when looking for base "
 "classes during method resolution."
 msgstr ""
+"El objeto :class:`tuple` de clases que se consideran al buscar clases base "
+"durante la resolución del métodos."
 
 #: ../Doc/reference/datamodel.rst:1049
-#, fuzzy
 msgid "Special methods"
-msgstr "Nombres especiales de método"
+msgstr "Métodos especiales"
 
 #: ../Doc/reference/datamodel.rst:1051
 msgid ""
 "In addition to the special attributes described above, all Python classes "
 "also have the following two methods available:"
 msgstr ""
+"Además de los atributos especiales descritos anteriormente, todas las clases "
+"de Python también tienen los siguientes dos métodos disponibles:"
 
 #: ../Doc/reference/datamodel.rst:1056
 msgid ""
@@ -1661,6 +1663,9 @@ msgid ""
 "resolution order for its instances.  It is called at class instantiation, "
 "and its result is stored in :attr:`~type.__mro__`."
 msgstr ""
+"Este método se puede anular por una metaclase para personalizar el orden de "
+"resolución de métodos para sus instancias. Se llama en la instanciación de "
+"la clase, y su resultado se almacena en :attr:`~type.__mro__`."
 
 #: ../Doc/reference/datamodel.rst:1062
 msgid ""
@@ -1668,6 +1673,9 @@ msgid ""
 "method returns a list of all those references still alive. The list is in "
 "definition order. Example:"
 msgstr ""
+"Cada clase mantiene una lista de referencias débiles a sus subclases "
+"inmediatas. Este método retorna una lista de todas esas referencias aún "
+"vivas. La lista está en orden de definición. Ejemplo:"
 
 #: ../Doc/reference/datamodel.rst:1066
 msgid ""
@@ -1676,13 +1684,16 @@ msgid ""
 ">>> A.__subclasses__()\n"
 "[<class 'B'>]"
 msgstr ""
+">>> class A: pass\n"
+">>> class B(A): pass\n"
+">>> A.__subclasses__()\n"
+"[<class 'B'>]"
 
 #: ../Doc/reference/datamodel.rst:1074
 msgid "Class instances"
 msgstr "Instancias de clase"
 
 #: ../Doc/reference/datamodel.rst:1082
-#, fuzzy
 msgid ""
 "A class instance is created by calling a class object (see above).  A class "
 "instance has a namespace implemented as a dictionary which is the first "
@@ -1705,14 +1716,14 @@ msgstr ""
 "instancia tiene un atributo con ese nombre, la búsqueda continúa con los "
 "atributos de la clase. Si se encuentra un atributo de clase que es un objeto "
 "de función definido por el usuario, se transforma en un objeto de método de "
-"instancia cuyo atributo :attr:`__self__` es la instancia. Los objetos de "
-"métodos estáticos y de clases también se transforman; consulte más arriba en "
-"\"Clases\". Consulte la sección :ref:`descriptors` para conocer otra forma "
-"en la que los atributos de una clase recuperados a través de sus instancias "
-"pueden diferir de los objetos realmente almacenados en el :attr:`~object."
-"__dict__` de la clase. Si no se encuentra ningún atributo de clase y la "
-"clase del objeto tiene un método :meth:`~object.__getattr__`, se llama para "
-"satisfacer la búsqueda."
+"instancia cuyo atributo :attr:`~method.__self__` es la instancia. Los "
+"objetos de métodos estáticos y de clases también se transforman; consulte "
+"más arriba en \"Clases\". Consulte la sección :ref:`descriptors` para "
+"conocer otra forma en la que los atributos de una clase recuperados a través "
+"de sus instancias pueden diferir de los objetos realmente almacenados en el :"
+"attr:`~object.__dict__` de la clase. Si no se encuentra ningún atributo de "
+"clase y la clase del objeto tiene un método :meth:`~object.__getattr__`, se "
+"llama para satisfacer la búsqueda."
 
 #: ../Doc/reference/datamodel.rst:1098
 msgid ""
@@ -1737,7 +1748,7 @@ msgstr ""
 
 #: ../Doc/reference/datamodel.rst:1120
 msgid "The class to which a class instance belongs."
-msgstr ""
+msgstr "La clase a la que pertenece una instancia de clase."
 
 #: ../Doc/reference/datamodel.rst:1124
 msgid ""
@@ -1745,6 +1756,9 @@ msgid ""
 "attributes. Not all instances have a :attr:`!__dict__` attribute; see the "
 "section on :ref:`slots` for more details."
 msgstr ""
+"Un diccionario u otro objeto de mapeo utilizado para almacenar los atributos "
+"(escribibles) de un objeto. No todas las instancias tienen un atributo :attr:"
+"`!__dict__`; vea la sección sobre :ref:`slots` para más detalles."
 
 #: ../Doc/reference/datamodel.rst:1130
 msgid "I/O objects (also known as file objects)"
@@ -1818,14 +1832,12 @@ msgstr ""
 "objetos mutables."
 
 #: ../Doc/reference/datamodel.rst:1211
-#, fuzzy
 msgid "The function name"
-msgstr "El nombre de la función."
+msgstr "El nombre de la función"
 
 #: ../Doc/reference/datamodel.rst:1214
-#, fuzzy
 msgid "The fully qualified function name"
-msgstr "El nombre de la función."
+msgstr "El nombre de la función completamente calificado"
 
 #: ../Doc/reference/datamodel.rst:1219
 msgid ""
@@ -1833,91 +1845,118 @@ msgid ""
 "positional-only parameters and parameters with default values) that the "
 "function has"
 msgstr ""
+"El número total de :term:`parámetros <parameter>` posicionales (incluye los "
+"parámetros solo posicionales y los parámetros con valores predeterminados) "
+"que tiene la función"
 
 #: ../Doc/reference/datamodel.rst:1224
 msgid ""
 "The number of positional-only :term:`parameters <parameter>` (including "
 "arguments with default values) that the function has"
 msgstr ""
+"El número de :term:`parámetros <parameter>` solo posicionales (incluye "
+"argumentos con valores predeterminados) que tiene la función"
 
 #: ../Doc/reference/datamodel.rst:1228
 msgid ""
 "The number of keyword-only :term:`parameters <parameter>` (including "
 "arguments with default values) that the function has"
 msgstr ""
+"El número de :term:`parámetros <parameter>` de solo palabras clave (incluye "
+"argumentos con valores predeterminados) que tiene la función"
 
 #: ../Doc/reference/datamodel.rst:1232
 msgid ""
 "The number of :ref:`local variables <naming>` used by the function "
 "(including parameters)"
 msgstr ""
+"El número de :ref:`variables locales <naming>` utilizadas por la función "
+"(incluye los parámetros)"
 
 #: ../Doc/reference/datamodel.rst:1236
 msgid ""
 "A :class:`tuple` containing the names of the local variables in the function "
 "(starting with the parameter names)"
 msgstr ""
+"Un objeto :class:`tuple` que contiene los nombres de las variables locales "
+"en la función (empezando por los nombres de los parámetros)"
 
 #: ../Doc/reference/datamodel.rst:1240
 msgid ""
 "A :class:`tuple` containing the names of :ref:`local variables <naming>` "
 "that are referenced by nested functions inside the function"
 msgstr ""
+"Un objeto :class:`tuple` que contiene los nombres de las :ref:`variables "
+"locales <naming>` a las que hacen referencia las funciones anidadas dentro "
+"de la función"
 
 #: ../Doc/reference/datamodel.rst:1244
 msgid "A :class:`tuple` containing the names of free variables in the function"
 msgstr ""
+"Un objeto :class:`tuple` que contiene los nombres de las variables libres en "
+"la función"
 
 #: ../Doc/reference/datamodel.rst:1247
 msgid ""
 "A string representing the sequence of :term:`bytecode` instructions in the "
 "function"
 msgstr ""
+"Una cadena de caracteres que representa la secuencia de instrucciones :term:"
+"`bytecode` en la función"
 
 #: ../Doc/reference/datamodel.rst:1251
 msgid ""
 "A :class:`tuple` containing the literals used by the :term:`bytecode` in the "
 "function"
 msgstr ""
+"Un objeto :class:`tuple` que contiene los literales utilizados por :term:"
+"`bytecode` en la función"
 
 #: ../Doc/reference/datamodel.rst:1255
 msgid ""
 "A :class:`tuple` containing the names used by the :term:`bytecode` in the "
 "function"
 msgstr ""
+"Un objeto :class:`tuple` que contiene los nombres utilizados por :term:"
+"`bytecode` en la función"
 
 #: ../Doc/reference/datamodel.rst:1259
-#, fuzzy
 msgid "The name of the file from which the code was compiled"
-msgstr "El nombre del módulo en el que se definió la clase."
+msgstr "El nombre del archivo en el que se compiló el código"
 
 #: ../Doc/reference/datamodel.rst:1262
 msgid "The line number of the first line of the function"
-msgstr ""
+msgstr "El número de línea de la primer línea de la función"
 
 #: ../Doc/reference/datamodel.rst:1265
 msgid ""
 "A string encoding the mapping from :term:`bytecode` offsets to line numbers. "
 "For details, see the source code of the interpreter."
 msgstr ""
+"Una cadena de caracteres que codifica la asignación de los desplazamientos "
+"de :term:`bytecode` a los números de línea. Para obtener más detalles, vea "
+"el código fuente del intérprete."
 
 #: ../Doc/reference/datamodel.rst:1268
 msgid ""
 "This attribute of code objects is deprecated, and may be removed in Python "
 "3.14."
 msgstr ""
+"Este atributo de los objetos de código está obsoleto, y puede ser eliminado "
+"en Python 3.14."
 
 #: ../Doc/reference/datamodel.rst:1273
 msgid "The required stack size of the code object"
-msgstr ""
+msgstr "El tamaño de pila requerido del objeto de código"
 
 #: ../Doc/reference/datamodel.rst:1276
 msgid ""
 "An :class:`integer <int>` encoding a number of flags for the interpreter."
 msgstr ""
+"Un :class:`entero <int>` que codifica un número de banderas para el "
+"intérprete."
 
 #: ../Doc/reference/datamodel.rst:1281
-#, fuzzy
 msgid ""
 "The following flag bits are defined for :attr:`~codeobject.co_flags`: bit "
 "``0x04`` is set if the function uses the ``*arguments`` syntax to accept an "
@@ -1927,15 +1966,16 @@ msgid ""
 "`inspect-module-co-flags` for details on the semantics of each flags that "
 "might be present."
 msgstr ""
-"Los siguientes bits de bandera son definidos por :attr:`co_flags` : bit "
-"``0x04`` es establecido si la función utiliza la sintaxis ``*arguments`` "
-"para aceptar un número arbitrario de argumentos posicionales; bit ``0x08`` "
-"es establecido si la función utiliza la sintaxis ``**keywords`` para aceptar "
-"argumentos de palabras clave arbitrarios; bit ``0x20`` es establecido si la "
-"función es un generador."
+"Los siguientes bits de bandera son definidos por :attr:`~codeobject."
+"co_flags`: el bit ``0x04`` es establecido si la función utiliza la sintaxis "
+"``*arguments`` para aceptar un número arbitrario de argumentos posicionales; "
+"el bit ``0x08`` es establecido si la función utiliza la sintaxis "
+"``**keywords`` para aceptar argumentos de palabras clave arbitrarios; el bit "
+"``0x20`` es establecido si la función es un generador. Vea :ref:`inspect-"
+"module-co-flags` para más detalles sobre la semántica de cada bandera que "
+"pueda estar presente."
 
 #: ../Doc/reference/datamodel.rst:1289
-#, fuzzy
 msgid ""
 "Future feature declarations (``from __future__ import division``) also use "
 "bits in :attr:`~codeobject.co_flags` to indicate whether a code object was "
@@ -1944,56 +1984,52 @@ msgid ""
 "``0x1000`` were used in earlier versions of Python."
 msgstr ""
 "Declaraciones de características futuras (``from __future__ import "
-"division``) también utiliza bits en :attr:`co_flags` para indicar si el "
-"objeto de código fue compilado con alguna característica particular "
-"habilitada: el bit ``0x2000`` es establecido si la función fue compilada con "
-"división futura habilitada; los bits ``0x10`` y ``0x1000`` fueron utilizados "
-"en versiones previas de Python."
+"division``) también utiliza bits en :attr:`~codeobject.co_flags` para "
+"indicar si el objeto de código fue compilado con alguna característica "
+"particular habilitada: el bit ``0x2000`` es establecido si la función fue "
+"compilada con división futura habilitada; los bits ``0x10`` y ``0x1000`` "
+"fueron utilizados en versiones previas de Python."
 
 #: ../Doc/reference/datamodel.rst:1295
-#, fuzzy
 msgid ""
 "Other bits in :attr:`~codeobject.co_flags` are reserved for internal use."
-msgstr "Otros bits en :attr:`co_flags` son reservados para uso interno."
+msgstr ""
+"Otros bits en :attr:`~codeobject.co_flags` son reservados para uso interno."
 
 #: ../Doc/reference/datamodel.rst:1299
-#, fuzzy
 msgid ""
 "If a code object represents a function, the first item in :attr:`~codeobject."
 "co_consts` is the documentation string of the function, or ``None`` if "
 "undefined."
 msgstr ""
 "Si un objeto de código representa una función, el primer elemento en :attr:"
-"`co_consts` es la cadena de documentación de la función, o ``None`` si no "
-"está definido."
+"`~codeobject.co_consts` es la cadena de documentación de la función, o "
+"``None`` si no está definido."
 
 #: ../Doc/reference/datamodel.rst:1304
-#, fuzzy
 msgid "Methods on code objects"
-msgstr "Objetos de código"
+msgstr "Métodos en objetos de código"
 
 #: ../Doc/reference/datamodel.rst:1308
-#, fuzzy
 msgid ""
 "Returns an iterable over the source code positions of each :term:`bytecode` "
 "instruction in the code object."
 msgstr ""
 "Retorna un iterable sobre las posiciones del código fuente de cada "
-"instrucción de código de bytes en el objeto de código."
+"instrucción de :term:`bytecode` en el objeto de código."
 
 #: ../Doc/reference/datamodel.rst:1311
-#, fuzzy
 msgid ""
 "The iterator returns :class:`tuple`\\s containing the ``(start_line, "
 "end_line, start_column, end_column)``. The *i-th* tuple corresponds to the "
 "position of the source code that compiled to the *i-th* code unit. Column "
 "information is 0-indexed utf-8 byte offsets on the given source line."
 msgstr ""
-"El iterador retorna tuplas que contienen ``(start_line, end_line, "
-"start_column, end_column)``. La tupla *i-th* corresponde a la posición del "
-"código fuente que se compiló en la instrucción *i-th*. La información de la "
-"columna son compensaciones de utf-8 bytes indexadas en 0 en la línea de "
-"origen dada."
+"El iterador retorna objetos :class:`tuple` que contienen ``(start_line, "
+"end_line, start_column, end_column)``. La tupla *i-ésima* corresponde a la "
+"posición del código fuente que se compiló en la unidad de código *i-ésima*. "
+"La información de la columna son desplazamientos de bytes utf-8 indexados en "
+"0 en la línea de origen dada."
 
 #: ../Doc/reference/datamodel.rst:1317
 msgid ""
@@ -2055,18 +2091,25 @@ msgid ""
 "`bytecode`\\s. Each item yielded is a ``(start, end, lineno)`` :class:"
 "`tuple`:"
 msgstr ""
+"Retorna un iterador que produce información sobre rangos sucesivos de "
+"objetos :term:`bytecode`. Cada elemento que se produjo es un objeto :class:"
+"`tuple` ``(start, end, lineno)``:"
 
 #: ../Doc/reference/datamodel.rst:1345
 msgid ""
 "``start`` (an :class:`int`) represents the offset (inclusive) of the start "
 "of the :term:`bytecode` range"
 msgstr ""
+"``start`` (un objeto :class:`int`) representa el desplazamiento (inclusivo) "
+"del inicio del rango de :term:`bytecode`"
 
 #: ../Doc/reference/datamodel.rst:1347
 msgid ""
 "``end`` (an :class:`int`) represents the offset (exclusive) of the end of "
 "the :term:`bytecode` range"
 msgstr ""
+"``end`` (un objeto :class:`int`) representa el desplazamiento (exclusivo) "
+"del final del rango de :term:`bytecode`"
 
 #: ../Doc/reference/datamodel.rst:1349
 msgid ""
@@ -2074,14 +2117,17 @@ msgid ""
 "`bytecode` range, or ``None`` if the bytecodes in the given range have no "
 "line number"
 msgstr ""
+"``lineno`` es un objeto :class:`int` que representa el número de línea del "
+"rango de :term:`bytecode`, o ``None`` si los códigos de bytes en el rango "
+"dado no tienen número de línea"
 
 #: ../Doc/reference/datamodel.rst:1353
 msgid "The items yielded will have the following properties:"
-msgstr ""
+msgstr "Los elementos producidos tendrán las siguientes propiedades:"
 
 #: ../Doc/reference/datamodel.rst:1355
 msgid "The first range yielded will have a ``start`` of 0."
-msgstr ""
+msgstr "El primer rango producido tendrá un elemento ``start`` de 0."
 
 #: ../Doc/reference/datamodel.rst:1356
 msgid ""
@@ -2089,16 +2135,21 @@ msgid ""
 "for any pair of :class:`tuple`\\s, the ``start`` of the second will be equal "
 "to the ``end`` of the first."
 msgstr ""
+"Los rangos ``(start, end)`` serán no decrecientes y consecutivos. Esto es, "
+"para cualquier par de objetos :class:`tuple`, el elemento ``start`` del "
+"segundo será igual al elemento ``end`` del primero."
 
 #: ../Doc/reference/datamodel.rst:1359
 msgid "No range will be backwards: ``end >= start`` for all triples."
-msgstr ""
+msgstr "Ningún rango será inverso: ``end >= start`` para todas las tripletas."
 
 #: ../Doc/reference/datamodel.rst:1360
 msgid ""
 "The last :class:`tuple` yielded will have ``end`` equal to the size of the :"
 "term:`bytecode`."
 msgstr ""
+"El último objeto :class:`tuple` producido tendrá el elemento ``end`` igual "
+"al tamaño de :term:`bytecode`."
 
 #: ../Doc/reference/datamodel.rst:1363
 msgid ""
@@ -2106,38 +2157,45 @@ msgid ""
 "are used for lines that are present in the source code, but have been "
 "eliminated by the :term:`bytecode` compiler."
 msgstr ""
+"Se permiten rangos de ancho cero, donde ``start == end``. Los rangos de "
+"ancho cero se utilizan para las líneas que están presentes en el código "
+"fuente, pero que han sido eliminadas por el compilador :term:`bytecode`."
 
 #: ../Doc/reference/datamodel.rst:1371
 msgid ":pep:`626` - Precise line numbers for debugging and other tools."
 msgstr ""
+":pep:`626` - Números de línea precisos para depuración y otras herramientas."
 
 #: ../Doc/reference/datamodel.rst:1372
 msgid "The PEP that introduced the :meth:`!co_lines` method."
-msgstr ""
+msgstr "El PEP que introdujo el método :meth:`!co_lines`."
 
 #: ../Doc/reference/datamodel.rst:1376
 msgid ""
 "Return a copy of the code object with new values for the specified fields."
 msgstr ""
+"Retorna una copia del objeto de código con nuevos valores para los campos "
+"especificados."
 
 #: ../Doc/reference/datamodel.rst:1378
 msgid ""
 "Code objects are also supported by the generic function :func:`copy.replace`."
 msgstr ""
+"Los objetos de código también son compatibles con la función genérica :func:"
+"`copy.replace`."
 
 #: ../Doc/reference/datamodel.rst:1386
 msgid "Frame objects"
 msgstr "Objetos de marco"
 
 #: ../Doc/reference/datamodel.rst:1390
-#, fuzzy
 msgid ""
 "Frame objects represent execution frames.  They may occur in :ref:`traceback "
 "objects <traceback-objects>`, and are also passed to registered trace "
 "functions."
 msgstr ""
-"Los objetos de marco representan marcos de ejecución. Pueden ocurrir en "
-"objetos de rastreo (ver a continuación), y son también pasados hacia "
+"Los objetos de marco representan marcos de ejecución. Pueden ocurrir en :ref:"
+"`objetos de rastreo <traceback-objects>`, y son también pasados hacia "
 "funciones de rastreo registradas."
 
 #: ../Doc/reference/datamodel.rst:1408
@@ -2145,103 +2203,109 @@ msgid ""
 "Points to the previous stack frame (towards the caller), or ``None`` if this "
 "is the bottom stack frame"
 msgstr ""
+"Apunta al marco de pila anterior (hacia el que hace la llamada), o ``None`` "
+"si este es el marco de pila inferior"
 
 #: ../Doc/reference/datamodel.rst:1412
-#, fuzzy
 msgid ""
 "The :ref:`code object <code-objects>` being executed in this frame. "
 "Accessing this attribute raises an :ref:`auditing event <auditing>` ``object."
 "__getattr__`` with arguments ``obj`` and ``\"f_code\"``."
 msgstr ""
-"Para ciertos accesos a atributos sensibles, lanza un :ref:`evento de "
-"auditoría <auditing>` ``object.__getattr__`` con los argumentos ``obj`` y "
-"``name``."
+"El :ref:`objeto de código <code-objects>` que se está ejecutando en este "
+"marco. Al acceder a este atributo se lanza un :ref:`evento de auditoría "
+"<auditing>` ``object.__getattr__`` con los argumentos ``obj`` y "
+"``\"f_code\"``."
 
+# Cómo puede quedar esta traducción, para que no quede como: "hace referencia a un :term:`optimized scope`"?
 #: ../Doc/reference/datamodel.rst:1417
 msgid ""
 "The mapping used by the frame to look up :ref:`local variables <naming>`. If "
 "the frame refers to an :term:`optimized scope`, this may return a write-"
 "through proxy object."
 msgstr ""
+"La asignación que utiliza el marco para buscar :ref:`variables locales "
+"<naming>`. Si el marco hace referencia a un :term:`ámbito optimizado "
+"<optimized scope>`, esto puede retornar un objeto proxy de escritura directa."
 
 #: ../Doc/reference/datamodel.rst:1422
 msgid "Return a proxy for optimized scopes."
-msgstr ""
+msgstr "Retorna un proxy para ámbitos optimizados."
 
 #: ../Doc/reference/datamodel.rst:1426
 msgid ""
 "The dictionary used by the frame to look up :ref:`global variables <naming>`"
 msgstr ""
+"El diccionario utilizado por el marco para buscar :ref:`variables globales "
+"<naming>`"
 
 #: ../Doc/reference/datamodel.rst:1430
 msgid ""
 "The dictionary used by the frame to look up :ref:`built-in (intrinsic) names "
 "<naming>`"
 msgstr ""
+"El diccionario utilizado por el marco para buscar :ref:`nombres incorporados "
+"(intrínsecos) <naming>`"
 
 #: ../Doc/reference/datamodel.rst:1434
 msgid ""
 "The \"precise instruction\" of the frame object (this is an index into the :"
 "term:`bytecode` string of the :ref:`code object <code-objects>`)"
 msgstr ""
+"La \"instrucción precisa\" del objeto de marco (es un índice en la cadena :"
+"term:`bytecode` del :ref:`objeto de código <code-objects>`)"
 
 #: ../Doc/reference/datamodel.rst:1450
-#, fuzzy
 msgid ""
 "If not ``None``, this is a function called for various events during code "
 "execution (this is used by debuggers). Normally an event is triggered for "
 "each new source line (see :attr:`~frame.f_trace_lines`)."
 msgstr ""
-"Atributos especiales escribibles: :attr:`f_trace`, de lo contrario ``None``, "
-"es una función llamada por distintos eventos durante la ejecución del código "
-"(éste es utilizado por el depurador). Normalmente un evento es desencadenado "
-"por cada una de las líneas fuente - esto puede ser deshabilitado "
-"estableciendo :attr:`f_trace_lines` a :const:`False`."
+"Si no es ``None``, esta es una función llamada por distintos eventos durante "
+"la ejecución del código (esto es utilizado por depuradores). Normalmente un "
+"evento es desencadenado por cada nueva línea fuente (vea :attr:`~frame."
+"f_trace_lines`)."
 
 #: ../Doc/reference/datamodel.rst:1455
 msgid ""
 "Set this attribute to :const:`False` to disable triggering a tracing event "
 "for each source line."
 msgstr ""
+"Establece este atributo a :const:`False` para deshabilitar la activación de "
+"un evento de seguimiento para cada línea de origen."
 
 #: ../Doc/reference/datamodel.rst:1459
-#, fuzzy
 msgid ""
 "Set this attribute to :const:`True` to allow per-opcode events to be "
 "requested. Note that this may lead to undefined interpreter behaviour if "
 "exceptions raised by the trace function escape to the function being traced."
 msgstr ""
-"Las implementaciones *pueden* permitir que eventos por código de operación "
-"sean solicitados estableciendo :attr:`f_trace_opcodes` a :const:`True`. "
-"Tenga en cuenta que esto puede llevar a un comportamiento indefinido del "
-"intérprete si se levantan excepciones por la función de rastreo escape hacia "
-"la función que está siendo rastreada."
+"Establece este atributo a :const:`True` para permitir que se soliciten "
+"eventos por código de operación. Tenga en cuenta que esto puede llevar a un "
+"comportamiento indefinido del intérprete si se levantan excepciones por la "
+"función de rastreo escape hacia la función que está siendo rastreada."
 
 #: ../Doc/reference/datamodel.rst:1465
-#, fuzzy
 msgid ""
 "The current line number of the frame -- writing to this from within a trace "
 "function jumps to the given line (only for the bottom-most frame).  A "
 "debugger can implement a Jump command (aka Set Next Statement) by writing to "
 "this attribute."
 msgstr ""
-":attr:`f_lineno` es el número de línea actual del marco --- escribiendo a "
-"esta forma dentro de una función de rastreo salta a la línea dada (solo para "
-"el último marco). Un depurador puede implementar un comando de salto "
-"(*Jump*) (también conocido como *Set Next Statement*) al escribir en "
-"f_lineno."
+"El número de línea actual del marco -- escribiendo a esta forma dentro de "
+"una función de rastreo salta a la línea dada (solo para el último marco). Un "
+"depurador puede implementar un comando de salto (*Jump*) (también conocido "
+"como *Set Next Statement*) al escribir en este atributo."
 
 #: ../Doc/reference/datamodel.rst:1471
-#, fuzzy
 msgid "Frame object methods"
-msgstr "Objetos de marco"
+msgstr "Métodos de objeto de marco"
 
 #: ../Doc/reference/datamodel.rst:1473
 msgid "Frame objects support one method:"
 msgstr "Objetos de marco soportan un método:"
 
 #: ../Doc/reference/datamodel.rst:1477
-#, fuzzy
 msgid ""
 "This method clears all references to :ref:`local variables <naming>` held by "
 "the frame.  Also, if the frame belonged to a :term:`generator`, the "
@@ -2249,51 +2313,51 @@ msgid ""
 "objects (for example when catching an :ref:`exception <bltin-exceptions>` "
 "and storing its :ref:`traceback <traceback-objects>` for later use)."
 msgstr ""
-"Este método limpia todas las referencias a variables locales mantenidas por "
-"el marco. También, si el marco pertenecía a un generador, éste es "
-"finalizado. Esto ayuda a interrumpir los ciclos de referencia que involucran "
-"objetos de marco (por ejemplo al detectar una excepción y almacenando su "
-"rastro para uso posterior)."
+"Este método limpia todas las referencias a :ref:`variables locales <naming>` "
+"mantenidas por el marco. También, si el marco pertenecía a un :term:"
+"`generator`, éste es finalizado. Esto ayuda a interrumpir los ciclos de "
+"referencia que involucran objetos de marco (por ejemplo al detectar una :ref:"
+"`excepción <bltin-exceptions>` y almacenando su :ref:`rastro <traceback-"
+"objects>` para uso posterior)."
 
 #: ../Doc/reference/datamodel.rst:1483
-#, fuzzy
 msgid ""
 ":exc:`RuntimeError` is raised if the frame is currently executing or "
 "suspended."
-msgstr ":exc:`RuntimeError` es lanzado si el marco se encuentra en ejecución."
+msgstr ""
+":exc:`RuntimeError` es lanzado si el marco se encuentra actualmente en "
+"ejecución o suspendido."
 
 #: ../Doc/reference/datamodel.rst:1488
 msgid ""
 "Attempting to clear a suspended frame raises :exc:`RuntimeError` (as has "
 "always been the case for executing frames)."
 msgstr ""
+"Al intentar borrar un marco suspendido lanza :exc:`RuntimeError` (como "
+"siempre ha sido el caso con los marcos en ejecución)."
 
 #: ../Doc/reference/datamodel.rst:1496
 msgid "Traceback objects"
 msgstr "Objetos de seguimiento de pila (traceback)"
 
 #: ../Doc/reference/datamodel.rst:1509
-#, fuzzy
 msgid ""
 "Traceback objects represent the stack trace of an :ref:`exception <tut-"
 "errors>`. A traceback object is implicitly created when an exception occurs, "
 "and may also be explicitly created by calling :class:`types.TracebackType`."
 msgstr ""
 "Los objetos de seguimiento de pila representan el trazo de pila (*stack "
-"trace*) de una excepción. Un objeto de rastreo es creado de manera implícita "
-"cuando se da una excepción, y puede ser creada de manera explícita al "
-"llamar :class:`types.TracebackType`."
+"trace*) de una :ref:`excepción <tut-errors>`. Un objeto de rastreo es creado "
+"de manera implícita cuando se da una excepción, y puede ser creada de manera "
+"explícita al llamar :class:`types.TracebackType`."
 
 #: ../Doc/reference/datamodel.rst:1514
-#, fuzzy
 msgid "Traceback objects can now be explicitly instantiated from Python code."
 msgstr ""
 "Los objetos de seguimiento de pila ya pueden ser instanciados de manera "
-"explícita desde código de Python, y el atributo ``tb_next`` de instancias "
-"existentes puede ser actualizado."
+"explícita desde código de Python."
 
 #: ../Doc/reference/datamodel.rst:1517
-#, fuzzy
 msgid ""
 "For implicitly created tracebacks, when the search for an exception handler "
 "unwinds the execution stack, at each unwound level a traceback object is "
@@ -2308,11 +2372,11 @@ msgstr ""
 "en cada nivel de desenvolvimiento se inserta un objeto de rastreo al frente "
 "del rastreo actual. Cuando se entra a un manejo de excepción, la pila de "
 "rastreo se vuelve disponible para el programa. (Ver sección :ref:`try`.) Es "
-"accesible como el tercer elemento de la tupla retornada por ``sys."
-"exc_info()``, y como el atributo ``__traceback__`` de la excepción capturada."
+"accesible como el tercer elemento de la tupla retornada por :func:`sys."
+"exc_info`, y como el atributo :attr:`~BaseException.__traceback__` de la "
+"excepción capturada."
 
 #: ../Doc/reference/datamodel.rst:1526
-#, fuzzy
 msgid ""
 "When the program contains no suitable handler, the stack trace is written "
 "(nicely formatted) to the standard error stream; if the interpreter is "
@@ -2320,74 +2384,66 @@ msgid ""
 "last_traceback`."
 msgstr ""
 "Cuando el programa no contiene un gestor apropiado, el trazo de pila es "
-"escrito (muy bien formateado) a la secuencia de error estándar; si el "
-"intérprete es interactivo, también se vuelve disponible al usuario como "
-"``sys.last_traceback``."
+"escrito (muy bien formateado) en el flujo de error estándar; si el "
+"intérprete es interactivo, también se vuelve disponible al usuario como :"
+"data:`sys.last_traceback`."
 
 #: ../Doc/reference/datamodel.rst:1531
-#, fuzzy
 msgid ""
 "For explicitly created tracebacks, it is up to the creator of the traceback "
 "to determine how the :attr:`~traceback.tb_next` attributes should be linked "
 "to form a full stack trace."
 msgstr ""
 "Para seguimientos de pila creados de forma explícita, depende de su creador "
-"determinar cómo los atributos ``tb_next`` deberían ser ligados para formar "
-"un trazo de pila completo (*full stack trace*)."
+"determinar cómo los atributos :attr:`~traceback.tb_next` deberían ser "
+"ligados para formar un trazo de pila completo (*full stack trace*)."
 
 #: ../Doc/reference/datamodel.rst:1546
 msgid ""
 "Points to the execution :ref:`frame <frame-objects>` of the current level."
-msgstr ""
+msgstr "Apunta al :ref:`marco <frame-objects>` de ejecución del nivel actual."
 
 #: ../Doc/reference/datamodel.rst:1549
-#, fuzzy
 msgid ""
 "Accessing this attribute raises an :ref:`auditing event <auditing>` ``object."
 "__getattr__`` with arguments ``obj`` and ``\"tb_frame\"``."
 msgstr ""
-"Acceder a ``tb_frame`` lanza un objeto :ref:`evento de auditoría <auditing>` "
-"``.__getattr__`` con argumentos ``obj`` y ``tb_frame``."
+"Acceder a este atributo lanza un objeto :ref:`evento de auditoría "
+"<auditing>` ``object.__getattr__`` con argumentos ``obj`` y ``\"tb_frame\"``."
 
 #: ../Doc/reference/datamodel.rst:1554
 msgid "Gives the line number where the exception occurred"
-msgstr ""
+msgstr "Indica el número de línea en la que se ha producido la excepción"
 
 #: ../Doc/reference/datamodel.rst:1557
 msgid "Indicates the \"precise instruction\"."
-msgstr ""
+msgstr "Indica la \"instrucción precisa\"."
 
 #: ../Doc/reference/datamodel.rst:1559
-#, fuzzy
 msgid ""
 "The line number and last instruction in the traceback may differ from the "
 "line number of its :ref:`frame object <frame-objects>` if the exception "
 "occurred in a :keyword:`try` statement with no matching except clause or "
 "with a :keyword:`finally` clause."
 msgstr ""
-"Atributos especiales de solo lectura: :attr:`tb_frame` apunta al marco de "
-"ejecución del nivel actual; :attr:`tb_lineno` da el número de línea donde "
-"ocurrió la excepción; :attr:`tb_lasti` indica la instrucción precisa. El "
-"número de línea y la última instrucción en el seguimiento de pila puede "
-"diferir del número de línea de su objeto de marco si la excepción ocurrió en "
-"una declaración :keyword:`try` sin una cláusula de excepción (except) "
-"correspondiente o con una cláusula *finally*."
+"El número de línea y la última instrucción en el seguimiento de pila puede "
+"diferir del número de línea de su :ref:`objeto de marco <frame-objects>` si "
+"la excepción ocurrió en una declaración :keyword:`try` sin una cláusula de "
+"excepción (except) correspondiente o con una cláusula :keyword:`finally`."
 
 #: ../Doc/reference/datamodel.rst:1570
-#, fuzzy
 msgid ""
 "The special writable attribute :attr:`!tb_next` is the next level in the "
 "stack trace (towards the frame where the exception occurred), or ``None`` if "
 "there is no next level."
 msgstr ""
-"Atributo especial escribible: :attr:`tb_next` es el siguiente nivel en el "
+"El atributo especial escribible :attr:`!tb_next` es el siguiente nivel en el "
 "trazo de pila (hacia el marco en donde ocurrió la excepción), o ``None`` si "
 "no existe un siguiente nivel."
 
 #: ../Doc/reference/datamodel.rst:1574
-#, fuzzy
 msgid "This attribute is now writable"
-msgstr "El atributo de módulo ``__class__`` es ahora escribible."
+msgstr "Este atributo es ahora escribible"
 
 #: ../Doc/reference/datamodel.rst:1579
 msgid "Slice objects"
@@ -2462,7 +2518,6 @@ msgid "Class method objects"
 msgstr "Objetos de método de clase"
 
 #: ../Doc/reference/datamodel.rst:1623
-#, fuzzy
 msgid ""
 "A class method object, like a static method object, is a wrapper around "
 "another object that alters the way in which that object is retrieved from "
@@ -2475,9 +2530,9 @@ msgstr ""
 "envoltorio (wrapper) alrededor de otro objeto que altera la forma en la que "
 "el objeto es obtenido desde las clases y las instancias de clase. El "
 "comportamiento de los objetos de método de clase sobre tal obtención es "
-"descrita más arriba, debajo de “Métodos definidos por usuario”. Objetos de "
-"clase de método son creados por el constructor incorporado :func:"
-"`classmethod`."
+"descrita más arriba, debajo de :ref:`\"métodos de instancia\" <instance-"
+"methods>`. Objetos de clase de método son creados por el constructor "
+"incorporado :func:`classmethod`."
 
 #: ../Doc/reference/datamodel.rst:1633
 msgid "Special method names"
@@ -2667,7 +2722,6 @@ msgstr ""
 "actual únicamente lo llama una vez."
 
 #: ../Doc/reference/datamodel.rst:1735
-#, fuzzy
 msgid ""
 "It is not guaranteed that :meth:`__del__` methods are called for objects "
 "that still exist when the interpreter exits. :class:`weakref.finalize` "
@@ -2675,7 +2729,9 @@ msgid ""
 "when an object is garbage collected."
 msgstr ""
 "No está garantizado que los métodos :meth:`__del__` sean llamados para "
-"objetos que aún existen cuando el intérprete se cierra."
+"objetos que aún existen cuando el intérprete se cierra. :class:`weakref."
+"finalize` proporciona una forma directa de registrar una función de limpieza "
+"para ser llamada cuando un objeto es recogido de la basura."
 
 #: ../Doc/reference/datamodel.rst:1742
 msgid ""
@@ -2884,7 +2940,6 @@ msgstr ""
 "llama ``x.__gt__(y)``, y ``x>=y`` llama ``x.__ge__(y)``."
 
 #: ../Doc/reference/datamodel.rst:1876
-#, fuzzy
 msgid ""
 "A rich comparison method may return the singleton :data:`NotImplemented` if "
 "it does not implement the operation for a given pair of arguments. By "
@@ -2894,17 +2949,16 @@ msgid ""
 "statement), Python will call :func:`bool` on the value to determine if the "
 "result is true or false."
 msgstr ""
-"Un método de comparación *rich* puede retornar el único ``NotImplemented`` "
-"si no implementa la operación para un par de argumentos dados. Por "
-"convención, ``False`` y ``True`` son retornados para una comparación "
-"exitosa. Sin embargo, estos métodos pueden retornar cualquier valor, así que "
-"si el operador de comparación es utilizado en un contexto Booleano (p. ej. "
-"en la condición de una sentencia ``if``), Python llamará :func:`bool` en "
-"dicho valor para determinar si el resultado es verdadero (*true*) o falso "
-"(*false*)."
+"Un método de comparación enriquecido puede retornar el único :data:"
+"`NotImplemented` si no implementa la operación para un par de argumentos "
+"dados. Por convención, ``False`` y ``True`` son retornados para una "
+"comparación exitosa. Sin embargo, estos métodos pueden retornar cualquier "
+"valor, así que si el operador de comparación es utilizado en un contexto "
+"Booleano (p. ej. en la condición de una sentencia ``if``), Python llamará :"
+"func:`bool` en dicho valor para determinar si el resultado es verdadero "
+"(*true*) o falso (*false*)."
 
 #: ../Doc/reference/datamodel.rst:1883
-#, fuzzy
 msgid ""
 "By default, ``object`` implements :meth:`__eq__` by using ``is``, returning :"
 "data:`NotImplemented` in the case of a false comparison: ``True if x is y "
@@ -2915,14 +2969,14 @@ msgid ""
 "``x<=y``. To automatically generate ordering operations from a single root "
 "operation, see :func:`functools.total_ordering`."
 msgstr ""
-"Por defecto, ``object`` implementa :meth:`__eq__` usando ``is``, retornando "
-"``NotImplemented`` en el caso de una comparación falsa: ``True if x is y "
+"Por defecto, ``object`` implementa :meth:`__eq__` usando ``is``, retornando :"
+"data:`NotImplemented` en el caso de una comparación falsa: ``True if x is y "
 "else NotImplemented``. Para :meth:`__ne__`, por defecto delega a :meth:"
-"`__eq__` e invierte el resultado a menos que sea ``NotImplemented``. No hay "
-"otras relaciones implícitas entre los operadores de comparación o "
-"implementaciones predeterminadas; por ejemplo, la verdad de ``(x <y o x == "
-"y)`` no implica ``x <= y``. Para generar automáticamente operaciones de "
-"pedido a partir de una sola operación raíz, consulte :func:`functools."
+"`__eq__` e invierte el resultado a menos que sea :data:`!NotImplemented`. No "
+"hay otras relaciones implícitas entre los operadores de comparación o "
+"implementaciones predeterminadas; por ejemplo, la verdad de ``(x<y o x==y)`` "
+"no implica ``x<=y``. Para generar automáticamente operaciones de ordenación "
+"a partir de una sola operación raíz, consulte :func:`functools."
 "total_ordering`."
 
 #: ../Doc/reference/datamodel.rst:1892
@@ -2936,7 +2990,6 @@ msgstr ""
 "personalizadas y son utilizables como llaves de diccionario."
 
 #: ../Doc/reference/datamodel.rst:1896
-#, fuzzy
 msgid ""
 "There are no swapped-argument versions of these methods (to be used when the "
 "left argument does not support the operation but the right argument does); "
@@ -2953,7 +3006,7 @@ msgstr ""
 "el de la derecha sí); más bien, :meth:`__lt__` y :meth:`__gt__` son el "
 "reflejo del otro, :meth:`__le__` y :meth:`__ge__` son un reflejo del otro, "
 "y :meth:`__eq__` y :meth:`__ne__` son su propio reflejo. Si los operandos "
-"son de tipos distintos, y el tipo de operando de la derecha es una clase "
+"son de tipos distintos, y el tipo de operando de la derecha es una subclase "
 "directa o indirecta del tipo de operando de la izquierda, el método "
 "reflejado del operando de la derecha tiene prioridad, de otro modo el método "
 "del operando de la izquierda tiene prioridad. Subclases virtuales no son "
@@ -2965,6 +3018,9 @@ msgid ""
 "`NotImplemented`, the ``==`` and ``!=`` operators will fall back to ``is`` "
 "and ``is not``, respectively."
 msgstr ""
+"Cuando ningún método retorna un valor distinto de :data:`NotImplemented`, "
+"los operadores ``==`` y ``!=`` vuelven a ``is`` y ``is not``, "
+"respectivamente."
 
 #: ../Doc/reference/datamodel.rst:1916
 msgid ""
@@ -2989,6 +3045,8 @@ msgid ""
 "def __hash__(self):\n"
 "    return hash((self.name, self.nick, self.color))"
 msgstr ""
+"def __hash__(self):\n"
+"    return hash((self.name, self.nick, self.color))"
 
 #: ../Doc/reference/datamodel.rst:1929
 msgid ""
@@ -3093,7 +3151,6 @@ msgstr ""
 "invocaciones repetidas de Python."
 
 #: ../Doc/reference/datamodel.rst:1976
-#, fuzzy
 msgid ""
 "This is intended to provide protection against a denial-of-service caused by "
 "carefully chosen inputs that exploit the worst case performance of a dict "
@@ -3102,8 +3159,9 @@ msgid ""
 msgstr ""
 "Esto tiene como objetivo brindar protección contra una denegación de "
 "servicio causada por entradas cuidadosamente elegidas que explotan el peor "
-"rendimiento de una inserción de dict, complejidad O(n\\ :sup:`2`). Consulte "
-"http://ocert.org/advisories/ocert-2011-003.html para obtener más detalles."
+"rendimiento de una inserción de diccionario, complejidad *O*\\ (*n*\\ :sup:"
+"`2`). Consulte http://ocert.org/advisories/ocert-2011-003.html para obtener "
+"más detalles."
 
 #: ../Doc/reference/datamodel.rst:1981
 msgid ""
@@ -3170,7 +3228,6 @@ msgstr ""
 "`AttributeError`."
 
 #: ../Doc/reference/datamodel.rst:2023
-#, fuzzy
 msgid ""
 "Note that if the attribute is found through the normal mechanism, :meth:"
 "`__getattr__` is not called.  (This is an intentional asymmetry between :"
@@ -3215,7 +3272,6 @@ msgstr ""
 "__getattribute__(self, name)``."
 
 #: ../Doc/reference/datamodel.rst:2047
-#, fuzzy
 msgid ""
 "This method may still be bypassed when looking up special methods as the "
 "result of implicit invocation via language syntax or :ref:`built-in "
@@ -3223,7 +3279,8 @@ msgid ""
 msgstr ""
 "Este método aún puede ser sobrepasado cuando se buscan métodos especiales "
 "como resultado de una invocación implícita a través de sintaxis de lenguaje "
-"o funciones implícitas. Ver :ref:`special-lookup`."
+"o :ref:`funciones incorporadas <builtin-functions>`. Ver :ref:`special-"
+"lookup`."
 
 #: ../Doc/reference/datamodel.rst:2052 ../Doc/reference/datamodel.rst:2054
 msgid ""
@@ -3285,13 +3342,12 @@ msgstr ""
 "``name``."
 
 #: ../Doc/reference/datamodel.rst:2090
-#, fuzzy
 msgid ""
 "Called when :func:`dir` is called on the object. An iterable must be "
 "returned. :func:`dir` converts the returned iterable to a list and sorts it."
 msgstr ""
-"Es llamado cuando :func:`dir` es llamado en el objeto. Una secuencia debe "
-"ser retornada. :func:`dir` convierte la secuencia retornada a una lista y la "
+"Es llamado cuando :func:`dir` es llamado en el objeto. Un iterable debe ser "
+"retornado. :func:`dir` convierte el iterable retornado a una lista y la "
 "ordena."
 
 #: ../Doc/reference/datamodel.rst:2095
@@ -3320,15 +3376,14 @@ msgstr ""
 "el nombre de atributo y el resultado es retornado."
 
 #: ../Doc/reference/datamodel.rst:2111
-#, fuzzy
 msgid ""
 "The ``__dir__`` function should accept no arguments, and return an iterable "
 "of strings that represents the names accessible on module. If present, this "
 "function overrides the standard :func:`dir` search on a module."
 msgstr ""
-"La función ``__dir__`` debe no aceptar argumentos y retornar una secuencia "
-"de cadena de caracteres que representan los nombres accesibles en el módulo. "
-"De existir, esta función anula la búsqueda estándar :func:`dir` en un módulo."
+"La función ``__dir__`` no debe aceptar argumentos y retorna un iterable de "
+"cadena de caracteres que representan los nombres accesibles en el módulo. De "
+"existir, esta función anula la búsqueda estándar :func:`dir` en un módulo."
 
 #: ../Doc/reference/datamodel.rst:2115
 msgid ""
@@ -3356,6 +3411,18 @@ msgid ""
 "\n"
 "sys.modules[__name__].__class__ = VerboseModule"
 msgstr ""
+"import sys\n"
+"from types import ModuleType\n"
+"\n"
+"class VerboseModule(ModuleType):\n"
+"    def __repr__(self):\n"
+"        return f'Verbose {self.__name__}'\n"
+"\n"
+"    def __setattr__(self, attr, value):\n"
+"        print(f'Setting {attr}...')\n"
+"        super().__setattr__(attr, value)\n"
+"\n"
+"sys.modules[__name__].__class__ = VerboseModule"
 
 #: ../Doc/reference/datamodel.rst:2133
 msgid ""
@@ -3474,9 +3541,10 @@ msgid ""
 "Instances of descriptors may also have the :attr:`!__objclass__` attribute "
 "present:"
 msgstr ""
+"Las instancias de descriptores también pueden tener presente el atributo :"
+"attr:`!__objclass__`:"
 
 #: ../Doc/reference/datamodel.rst:2199
-#, fuzzy
 msgid ""
 "The attribute :attr:`!__objclass__` is interpreted by the :mod:`inspect` "
 "module as specifying the class where this object was defined (setting this "
@@ -3486,13 +3554,13 @@ msgid ""
 "argument (for example, CPython sets this attribute for unbound methods that "
 "are implemented in C)."
 msgstr ""
-"El atributo :attr:`__objclass__` es interpretado por el módulo :mod:"
+"El atributo :attr:`!__objclass__` es interpretado por el módulo :mod:"
 "`inspect` como la especificación de la clase donde el objeto fue definido "
 "(establecer esto adecuadamente puede ayudar en introspección de atributos "
 "dinámicos de clases en tiempo de ejecución). Para invocables, puede indicar "
 "que una instancia de un tipo (o subclase) dado es esperado o requerido como "
-"el primero argumento posicional (por ejemplo, CPython establece este "
-"atributo para métodos independientes que son implementados en C)."
+"el primer argumento posicional (por ejemplo, CPython establece este atributo "
+"para métodos independientes que son implementados en C)."
 
 #: ../Doc/reference/datamodel.rst:2210
 msgid "Invoking Descriptors"
@@ -3598,7 +3666,6 @@ msgstr ""
 "cambios."
 
 #: ../Doc/reference/datamodel.rst:2281
-#, fuzzy
 msgid ""
 "For instance bindings, the precedence of descriptor invocation depends on "
 "which descriptor methods are defined.  A descriptor can define any "
@@ -3615,20 +3682,20 @@ msgid ""
 "dictionary.  In contrast, non-data descriptors can be overridden by "
 "instances."
 msgstr ""
-"Por ejemplo, enlaces, la precedencia de la invocación de descriptores "
-"depende de qué métodos de descriptores están definidos. Un descriptor puede "
-"definir cualquier combinación de :meth:`~object.__get__`, :meth:`~object."
-"__set__` y :meth:`~object.__delete__`. Si no define :meth:`__get__`, acceder "
-"al atributo retornará el objeto descriptor en sí, a menos que haya un valor "
-"en el diccionario de instancia del objeto. Si el descriptor define :meth:"
-"`__set__` y/o :meth:`__delete__`, es un descriptor de datos; si no define "
-"ninguno de los dos, es un descriptor que no es de datos. Normalmente, los "
-"descriptores de datos definen tanto :meth:`__get__` como :meth:`__set__`, "
-"mientras que los descriptores que no son de datos tienen solo el método :"
-"meth:`__get__`. Los descriptores de datos con :meth:`__get__` y :meth:"
-"`__set__` (y/o :meth:`__delete__`) definidos siempre anulan una redefinición "
-"en un diccionario de instancia. Por el contrario, las instancias pueden "
-"anular los descriptores que no son datos."
+"En el caso de los enlaces de instancias, la precedencia de la invocación de "
+"descriptores depende de qué métodos de descriptores están definidos. Un "
+"descriptor puede definir cualquier combinación de :meth:`~object.__get__`, :"
+"meth:`~object.__set__` y :meth:`~object.__delete__`. Si no define :meth:`!"
+"__get__`, acceder al atributo retornará el objeto descriptor en sí, a menos "
+"que haya un valor en el diccionario de instancia del objeto. Si el "
+"descriptor define :meth:`!__set__` y/o :meth:`!__delete__`, es un descriptor "
+"de datos; si no define ninguno de los dos, es un descriptor que no es de "
+"datos. Normalmente, los descriptores de datos definen tanto :meth:`!__get__` "
+"como :meth:`!__set__`, mientras que los descriptores que no son de datos "
+"tienen solo el método :meth:`!__get__`. Los descriptores de datos con :meth:"
+"`!__get__` y :meth:`!__set__` (y/o :meth:`!__delete__`) definidos siempre "
+"anulan una redefinición en un diccionario de instancia. Por el contrario, "
+"las instancias pueden anular los descriptores que no son datos."
 
 #: ../Doc/reference/datamodel.rst:2296
 msgid ""
@@ -3691,7 +3758,7 @@ msgstr ""
 
 #: ../Doc/reference/datamodel.rst:2329
 msgid "Notes on using *__slots__*:"
-msgstr "Notas sobre el uso de  *__slots__*"
+msgstr "Notas sobre el uso de *__slots__*:"
 
 #: ../Doc/reference/datamodel.rst:2331
 msgid ""
@@ -3743,7 +3810,6 @@ msgstr ""
 "de clase sobrescribiría la asignación del descriptor."
 
 #: ../Doc/reference/datamodel.rst:2354
-#, fuzzy
 msgid ""
 "The action of a *__slots__* declaration is not limited to the class where it "
 "is defined.  *__slots__* declared in parents are available in child classes. "
@@ -3752,10 +3818,11 @@ msgid ""
 "only contain names of any *additional* slots)."
 msgstr ""
 "La acción de una declaración *__slots__* no se limita a la clase donde se "
-"define. *__slots__* declarado en padres está disponible en clases "
-"secundarias. Sin embargo, las subclases secundarias obtendrán :attr:`~object."
-"__dict__` y *__weakref__* a menos que también definan *__slots__* (que solo "
-"debe contener nombres de cualquier ranura *additional*)."
+"define. *__slots__* declarado en clases principales está disponible en "
+"clases secundarias. Sin embargo, las subclases secundarias obtendrán :attr:"
+"`~object.__dict__` y *__weakref__* a menos que las subclases también definan "
+"*__slots__* (que solo debe contener nombres de cualquier ranura "
+"*additional*)."
 
 #: ../Doc/reference/datamodel.rst:2360
 msgid ""
@@ -3803,12 +3870,11 @@ msgstr ""
 "func:`help`."
 
 #: ../Doc/reference/datamodel.rst:2377
-#, fuzzy
 msgid ""
 ":attr:`~object.__class__` assignment works only if both classes have the "
 "same *__slots__*."
 msgstr ""
-"La asignación de :attr:`~instance.__class__` solo funciona si ambas clases "
+"La asignación de :attr:`~object.__class__` solo funciona si ambas clases "
 "tienen el mismo *__slots__*."
 
 #: ../Doc/reference/datamodel.rst:2380
@@ -3866,7 +3932,6 @@ msgstr ""
 "clase."
 
 #: ../Doc/reference/datamodel.rst:2409
-#, fuzzy
 msgid ""
 "Keyword arguments which are given to a new class are passed to the parent "
 "class's ``__init_subclass__``. For compatibility with other classes using "
@@ -3889,6 +3954,13 @@ msgid ""
 "class AustralianPhilosopher(Philosopher, default_name=\"Bruce\"):\n"
 "    pass"
 msgstr ""
+"class Philosopher:\n"
+"    def __init_subclass__(cls, /, default_name, **kwargs):\n"
+"        super().__init_subclass__(**kwargs)\n"
+"        cls.default_name = default_name\n"
+"\n"
+"class AustralianPhilosopher(Philosopher, default_name=\"Bruce\"):\n"
+"    pass"
 
 #: ../Doc/reference/datamodel.rst:2423
 msgid ""
@@ -3932,6 +4004,8 @@ msgid ""
 "class A:\n"
 "    x = C()  # Automatically calls: x.__set_name__(A, 'x')"
 msgstr ""
+"class A:\n"
+"    x = C()  # Llama automáticamente: x.__set_name__(A, 'x')"
 
 #: ../Doc/reference/datamodel.rst:2447
 msgid ""
@@ -3952,6 +4026,12 @@ msgid ""
 "A.x = c                  # The hook is not called\n"
 "c.__set_name__(A, 'x')   # Manually invoke the hook"
 msgstr ""
+"class A:\n"
+"   pass\n"
+"\n"
+"c = C()\n"
+"A.x = c                  # No se llama el enlace\n"
+"c.__set_name__(A, 'x')   # Invoca manualmente el enlace"
 
 #: ../Doc/reference/datamodel.rst:2458
 msgid "See :ref:`class-object-creation` for more details."
@@ -3994,6 +4074,14 @@ msgid ""
 "class MySubclass(MyClass):\n"
 "    pass"
 msgstr ""
+"class Meta(type):\n"
+"    pass\n"
+"\n"
+"class MyClass(metaclass=Meta):\n"
+"    pass\n"
+"\n"
+"class MySubclass(MyClass):\n"
+"    pass"
 
 #: ../Doc/reference/datamodel.rst:2491
 msgid ""
@@ -4294,7 +4382,6 @@ msgstr ""
 "el espacio de nombres local como la clase definida."
 
 #: ../Doc/reference/datamodel.rst:2640
-#, fuzzy
 msgid ""
 "When a new class is created by ``type.__new__``, the object provided as the "
 "namespace parameter is copied to a new ordered mapping and the original "
@@ -4302,10 +4389,10 @@ msgid ""
 "becomes the :attr:`~type.__dict__` attribute of the class object."
 msgstr ""
 "Cuando una nueva clase es creada por ``type.__new__``, el objeto "
-"proporcionado como el parámetro de espacio de nombres es copiado a un "
+"proporcionado como el parámetro de espacio de nombres es copiado a un nuevo "
 "trazado ordenado y el objeto original es descartado. La nueva copia es "
 "*envuelta* en un proxy de solo lectura, que se convierte en el atributo :"
-"attr:`~object.__dict__` del objeto de clase."
+"attr:`~type.__dict__` del objeto de clase."
 
 #: ../Doc/reference/datamodel.rst:2647
 msgid ":pep:`3135` - New super"
@@ -4394,7 +4481,6 @@ msgstr ""
 ":pep:`3119` - Introducción a Clases Base Abstractas (*Abstract Base Classes*)"
 
 #: ../Doc/reference/datamodel.rst:2693
-#, fuzzy
 msgid ""
 "Includes the specification for customizing :func:`isinstance` and :func:"
 "`issubclass` behavior through :meth:`~type.__instancecheck__` and :meth:"
@@ -4403,8 +4489,8 @@ msgid ""
 "language."
 msgstr ""
 "Incluye la especificación para personalizar el comportamiento de :func:"
-"`isinstance` y :func:`issubclass` a través de :meth:`~class."
-"__instancecheck__` y :meth:`~class.__subclasscheck__`, con motivación para "
+"`isinstance` y :func:`issubclass` a través de :meth:`~type."
+"__instancecheck__` y :meth:`~type.__subclasscheck__`, con motivación para "
 "esta funcionalidad en el contexto de agregar Clases Base Abstractas (ver el "
 "módulo :mod:`abc`) al lenguaje."
 
@@ -4583,6 +4669,28 @@ msgid ""
 "            f\"'{class_of_obj.__name__}' object is not subscriptable\"\n"
 "        )"
 msgstr ""
+"from inspect import isclass\n"
+"\n"
+"def subscribe(obj, x):\n"
+"    \"\"\"Retorna el resultado de la expresión 'obj[x]'\"\"\"\n"
+"\n"
+"    class_of_obj = type(obj)\n"
+"\n"
+"    # Si la clase de obj define __getitem__,\n"
+"    # llama class_of_obj.__getitem__(obj, x)\n"
+"    if hasattr(class_of_obj, '__getitem__'):\n"
+"        return class_of_obj.__getitem__(obj, x)\n"
+"\n"
+"    # De lo contrario, si obj es una clase y define __class_getitem__,\n"
+"    # llama obj.__class_getitem__(x)\n"
+"    elif isclass(obj) and hasattr(obj, '__class_getitem__'):\n"
+"        return obj.__class_getitem__(x)\n"
+"\n"
+"    # De lo contrario, lanza una excepción\n"
+"    else:\n"
+"        raise TypeError(\n"
+"            f\"'{class_of_obj.__name__}' object is not subscriptable\"\n"
+"        )"
 
 #: ../Doc/reference/datamodel.rst:2793
 msgid ""
@@ -4614,6 +4722,18 @@ msgid ""
 ">>> type(list[int])\n"
 "<class 'types.GenericAlias'>"
 msgstr ""
+">>> # list tiene la clase \"type\" como su metaclase, como la mayoría de las "
+"clases:\n"
+">>> type(list)\n"
+"<class 'type'>\n"
+">>> type(dict) == type(list) == type(tuple) == type(str) == type(bytes)\n"
+"True\n"
+">>> # \"list[int]\" llama \"list.__class_getitem__(int)\"\n"
+">>> list[int]\n"
+"list[int]\n"
+">>> # list.__class_getitem__ retorna un objeto GenericAlias:\n"
+">>> type(list[int])\n"
+"<class 'types.GenericAlias'>"
 
 #: ../Doc/reference/datamodel.rst:2812
 msgid ""
@@ -4645,6 +4765,22 @@ msgid ""
 ">>> type(Menu['SPAM'])\n"
 "<enum 'Menu'>"
 msgstr ""
+">>> from enum import Enum\n"
+">>> class Menu(Enum):\n"
+"...     \"\"\"Un menú de desayuno\"\"\"\n"
+"...     SPAM = 'spam'\n"
+"...     BACON = 'bacon'\n"
+"...\n"
+">>> # Las clases de enumeración tienen una metaclase personalizada:\n"
+">>> type(Menu)\n"
+"<class 'enum.EnumMeta'>\n"
+">>> # EnumMeta define __getitem__,\n"
+">>> # por lo que no se llama __class_getitem__,\n"
+">>> # y el resultado no es un objeto GenericAlias:\n"
+">>> Menu['SPAM']\n"
+"<Menu.SPAM: 'spam'>\n"
+">>> type(Menu['SPAM'])\n"
+"<enum 'Menu'>"
 
 #: ../Doc/reference/datamodel.rst:2837
 msgid ":pep:`560` - Core Support for typing module and generic types"
@@ -4680,7 +4816,6 @@ msgid "Emulating container types"
 msgstr "Emulando tipos de contenedores"
 
 #: ../Doc/reference/datamodel.rst:2860
-#, fuzzy
 msgid ""
 "The following methods can be defined to implement container objects.  "
 "Containers usually are :term:`sequences <sequence>` (such as :class:`lists "
@@ -4716,39 +4851,39 @@ msgid ""
 "should iterate through the values."
 msgstr ""
 "Se pueden definir los siguientes métodos para implementar objetos "
-"contenedores. Los contenedores suelen ser :term:`sequences <sequence>` "
-"(como :class:`lists <list>` o :class:`tuples <tuple>`) o :term:`mappings "
-"<mapping>` (como :class:`dictionaries <dict>`), pero también pueden "
-"representar otros contenedores. El primer conjunto de métodos se utiliza "
-"para emular una secuencia o un mapeo; la diferencia es que para una "
-"secuencia, las claves permitidas deben ser los números enteros *k* para los "
-"cuales ``0 <= k < N`` donde *N* es la longitud de la secuencia, u objetos :"
-"class:`slice`, que definen un rango de elementos. También se recomienda que "
-"las asignaciones proporcionen los métodos :meth:`keys`, :meth:`values`, :"
-"meth:`items`, :meth:`get`, :meth:`clear`, :meth:`setdefault`, :meth:`pop`, :"
-"meth:`popitem`, :meth:`!copy` y :meth:`update` que se comportan de manera "
-"similar a los de los objetos :class:`dictionary <dict>` estándar de Python. "
-"El módulo :mod:`collections.abc` proporciona un :class:`~collections.abc."
-"MutableMapping` :term:`abstract base class` para ayudar a crear esos métodos "
-"a partir de un conjunto básico de :meth:`~object.__getitem__`, :meth:"
-"`~object.__setitem__`, :meth:`~object.__delitem__` y :meth:`keys`. Las "
-"secuencias mutables deben proporcionar los métodos :meth:`append`, :meth:"
-"`count`, :meth:`index`, :meth:`extend`, :meth:`insert`, :meth:`pop`, :meth:"
-"`remove`, :meth:`reverse` y :meth:`sort`, como los objetos :class:`list` "
-"estándar de Python. Finalmente, los tipos de secuencia deben implementar la "
-"suma (es decir, concatenación) y la multiplicación (es decir, repetición) "
-"definiendo los métodos :meth:`~object.__add__`, :meth:`~object.__radd__`, :"
-"meth:`~object.__iadd__`, :meth:`~object.__mul__`, :meth:`~object.__rmul__` "
-"y :meth:`~object.__imul__` que se describen a continuación; no deben definir "
-"otros operadores numéricos. Se recomienda que tanto las asignaciones como "
-"las secuencias implementen el método :meth:`~object.__contains__` para "
-"permitir el uso eficiente del operador ``in``; para asignaciones, ``in`` "
-"debería buscar las claves de la asignación; para secuencias, debe buscar "
-"entre los valores. Se recomienda además que tanto las asignaciones como las "
-"secuencias implementen el método :meth:`~object.__iter__` para permitir una "
-"iteración eficiente a través del contenedor; para asignaciones, :meth:"
-"`__iter__` debe iterar a través de las claves del objeto; para secuencias, "
-"debe iterar a través de los valores."
+"contenedores. Los contenedores suelen ser :term:`secuencias <sequence>` "
+"(como :class:`listas <list>` o :class:`tuplas <tuple>`) o :term:"
+"`asignaciones <mapping>` (como :class:`diccionarios <dict>`), pero también "
+"pueden representar otros contenedores. El primer conjunto de métodos se "
+"utiliza para emular una secuencia o para emular un mapeo; la diferencia es "
+"que para una secuencia, las claves permitidas deben ser los números enteros "
+"*k* para los cuales ``0 <= k < N`` donde *N* es la longitud de la secuencia, "
+"u objetos :class:`slice`, que definen un rango de elementos. También se "
+"recomienda que las asignaciones proporcionen los métodos :meth:`!keys`, :"
+"meth:`!values`, :meth:`!items`, :meth:`!get`, :meth:`!clear`, :meth:`!"
+"setdefault`, :meth:`!pop`, :meth:`!popitem`, :meth:`!copy` y :meth:`!update` "
+"que se comportan de manera similar a los de los objetos :class:`diccionario "
+"<dict>` estándar de Python. El módulo :mod:`collections.abc` proporciona un :"
+"class:`~collections.abc.MutableMapping` :term:`abstract base class` para "
+"ayudar a crear esos métodos a partir de un conjunto básico de :meth:`~object."
+"__getitem__`, :meth:`~object.__setitem__`, :meth:`~object.__delitem__` y :"
+"meth:`!keys`. Las secuencias mutables deben proporcionar los métodos :meth:`!"
+"append`, :meth:`!count`, :meth:`!index`, :meth:`!extend`, :meth:`!insert`, :"
+"meth:`!pop`, :meth:`!remove`, :meth:`!reverse` y :meth:`!sort`, como los "
+"objetos :class:`list` estándar de Python. Finalmente, los tipos de secuencia "
+"deben implementar la suma (es decir, concatenación) y la multiplicación (es "
+"decir, repetición) definiendo los métodos :meth:`~object.__add__`, :meth:"
+"`~object.__radd__`, :meth:`~object.__iadd__`, :meth:`~object.__mul__`, :meth:"
+"`~object.__rmul__` y :meth:`~object.__imul__` que se describen a "
+"continuación; no deben definir otros operadores numéricos. Se recomienda que "
+"tanto las asignaciones como las secuencias implementen el método :meth:"
+"`~object.__contains__` para permitir el uso eficiente del operador ``in``; "
+"para asignaciones, ``in`` debería buscar las claves de la asignación; para "
+"secuencias, debe buscar entre los valores. Se recomienda además que tanto "
+"las asignaciones como las secuencias implementen el método :meth:`~object."
+"__iter__` para permitir una iteración eficiente a través del contenedor; "
+"para asignaciones, :meth:`!__iter__` debe iterar a través de las claves del "
+"objeto; para secuencias, debe iterar a través de los valores."
 
 #: ../Doc/reference/datamodel.rst:2901
 msgid ""
@@ -4777,7 +4912,6 @@ msgstr ""
 "definir un método :meth:`~object.__bool__`."
 
 #: ../Doc/reference/datamodel.rst:2917
-#, fuzzy
 msgid ""
 "Called to implement :func:`operator.length_hint`. Should return an estimated "
 "length for the object (which may be greater or less than the actual length). "
@@ -4789,7 +4923,7 @@ msgstr ""
 "Es llamado para implementar :func:`operator.length_hint`. Debe retornar una "
 "longitud estimada para el objeto (que puede ser mayor o menor que la "
 "longitud actual). La longitud debe ser un entero ``>=`` 0. El valor de "
-"retorno también debe ser :const:`NotImplemented` el cual es tratado de igual "
+"retorno también debe ser :data:`NotImplemented`, el cual es tratado de igual "
 "forma a que si el método ``__length_hint__`` no existiera en absoluto. Este "
 "método es puramente una optimización y nunca es requerido para precisión."
 
@@ -4802,7 +4936,7 @@ msgstr ""
 
 #: ../Doc/reference/datamodel.rst:2933
 msgid "a[1:2] = b"
-msgstr ""
+msgstr "a[1:2] = b"
 
 #: ../Doc/reference/datamodel.rst:2935
 msgid "is translated to ::"
@@ -4810,7 +4944,7 @@ msgstr "es traducido a ::"
 
 #: ../Doc/reference/datamodel.rst:2937
 msgid "a[slice(1, 2, None)] = b"
-msgstr ""
+msgstr "a[slice(1, 2, None)] = b"
 
 #: ../Doc/reference/datamodel.rst:2939
 msgid "and so forth.  Missing slice items are always filled in with ``None``."
@@ -4818,7 +4952,6 @@ msgstr ""
 "etcétera. Elementos faltantes de segmentos siempre son llenados con ``None``."
 
 #: ../Doc/reference/datamodel.rst:2944
-#, fuzzy
 msgid ""
 "Called to implement evaluation of ``self[key]``. For :term:`sequence` types, "
 "the accepted keys should be integers. Optionally, they may support :class:"
@@ -4830,11 +4963,10 @@ msgid ""
 "`KeyError` should be raised."
 msgstr ""
 "Llamado a implementar evaluación de ``self[key]``. Para los tipos :term:"
-"`sequence`, las claves aceptadas deben ser números enteros y objetos de "
-"segmento. Tenga en cuenta que la interpretación especial de los índices "
-"negativos (si la clase desea emular un tipo :term:`sequence`) depende del "
-"método :meth:`__getitem__`. Si *key* es de un tipo inadecuado, es posible "
-"que se genere :exc:`TypeError`; si se trata de un valor fuera del conjunto "
+"`sequence`, las claves aceptadas deben ser números enteros. Opcionalmente, "
+"también puede soportar objetos :class:`slice`. La compatibilidad con índices "
+"negativos también es opcional. Si *key* es de un tipo inadecuado, es posible "
+"que se genere :exc:`TypeError`; si *key* es de un valor fuera del conjunto "
 "de índices de la secuencia (después de cualquier interpretación especial de "
 "valores negativos), se debe generar :exc:`IndexError`. Para los tipos :term:"
 "`mapping`, si falta *key* (no en el contenedor), se debe generar :exc:"
@@ -5013,16 +5145,14 @@ msgstr ""
 "de la función incorporada :func:`pow`."
 
 #: ../Doc/reference/datamodel.rst:3071
-#, fuzzy
 msgid ""
 "If one of those methods does not support the operation with the supplied "
 "arguments, it should return :data:`NotImplemented`."
 msgstr ""
 "Si alguno de esos métodos no permiten la operación con los argumentos "
-"suministrados, debe retornar ``NotImplemented``."
+"suministrados, debe retornar :data:`NotImplemented`."
 
 #: ../Doc/reference/datamodel.rst:3094
-#, fuzzy
 msgid ""
 "These methods are called to implement the binary arithmetic operations "
 "(``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:"
@@ -5042,7 +5172,7 @@ msgstr ""
 "diferentes tipos. [#]_ Por ejemplo, para evaluar la expresión ``x - y``, "
 "donde *y* es una instancia de una clase que tiene un método :meth:"
 "`__rsub__`, se llama a ``type(y).__rsub__(y, x)`` si ``type(x).__sub__(x, "
-"y)`` retorna *NotImplemented*."
+"y)`` retorna :data:`NotImplemented`."
 
 #: ../Doc/reference/datamodel.rst:3106
 msgid ""
@@ -5068,7 +5198,6 @@ msgstr ""
 "operaciones de sus predecesores."
 
 #: ../Doc/reference/datamodel.rst:3132
-#, fuzzy
 msgid ""
 "These methods are called to implement the augmented arithmetic assignments "
 "(``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, ``**=``, ``<<=``, "
@@ -5090,14 +5219,15 @@ msgstr ""
 "``**=``, ``<<=``, ``>>=``, ``&=``, ``^=``, ``|=``). Estos métodos deben "
 "intentar realizar la operación *in-place* (modificando *self*) y retornar el "
 "resultado (que puede, pero no tiene que ser *self*). Si un método específico "
-"no es definido, la asignación aumentada regresa a los métodos normales. Por "
-"ejemplo, si *x* es la instancia de una clase con el método :meth:`__iadd__`, "
-"``x += y`` es equivalente a ``x = x.__iadd__(y)``. De lo contrario ``x."
-"__add__(y)`` y ``y.__radd__(x)`` se consideran al igual que con la "
-"evaluación de ``x + y``. En ciertas situaciones, asignaciones aumentadas "
-"pueden resultar en errores no esperados (ver :ref:`faq-augmented-assignment-"
-"tuple-error`), pero este comportamiento es en realidad parte del modelo de "
-"datos."
+"no es definido o si ese método retorna :data:`NotImplemented`, la asignación "
+"aumentada regresa a los métodos normales. Por ejemplo, si *x* es la "
+"instancia de una clase con el método :meth:`__iadd__`, ``x += y`` es "
+"equivalente a ``x = x.__iadd__(y)``. Si :meth:`__iadd__` no existe o si ``x."
+"__iadd__(y)`` retorna :data:`!NotImplemented`, ``x.__add__(y)`` y ``y."
+"__radd__(x)`` se consideran al igual que con la evaluación de ``x + y``. En "
+"ciertas situaciones, asignaciones aumentadas pueden resultar en errores no "
+"esperados (ver :ref:`faq-augmented-assignment-tuple-error`), pero este "
+"comportamiento es en realidad parte del modelo de datos."
 
 #: ../Doc/reference/datamodel.rst:3155
 msgid ""
@@ -5236,14 +5366,13 @@ msgstr ""
 "método."
 
 #: ../Doc/reference/datamodel.rst:3245
-#, fuzzy
 msgid ""
 "Note that :meth:`~object.__exit__` methods should not reraise the passed-in "
 "exception; this is the caller's responsibility."
 msgstr ""
-"Se debe tomar en cuenta que los métodos :meth:`__exit__` no deben lanzar de "
-"nuevo la excepción que se pasa; esto es la responsabilidad de quien hace el "
-"llamado."
+"Se debe tomar en cuenta que los métodos :meth:`~object.__exit__` no deben "
+"lanzar de nuevo la excepción que se pasa; esto es la responsabilidad de "
+"quien hace el llamado."
 
 #: ../Doc/reference/datamodel.rst:3252
 msgid ":pep:`343` - The \"with\" statement"
@@ -5416,6 +5545,15 @@ msgid ""
 "  File \"<stdin>\", line 1, in <module>\n"
 "TypeError: object of type 'C' has no len()"
 msgstr ""
+">>> class C:\n"
+"...     pass\n"
+"...\n"
+">>> c = C()\n"
+">>> c.__len__ = lambda: 5\n"
+">>> len(c)\n"
+"Traceback (most recent call last):\n"
+"  File \"<stdin>\", line 1, in <module>\n"
+"TypeError: object of type 'C' has no len()"
 
 #: ../Doc/reference/datamodel.rst:3349
 msgid ""
@@ -5440,6 +5578,12 @@ msgid ""
 "  File \"<stdin>\", line 1, in <module>\n"
 "TypeError: descriptor '__hash__' of 'int' object needs an argument"
 msgstr ""
+">>> 1 .__hash__() == hash(1)\n"
+"True\n"
+">>> int.__hash__() == hash(int)\n"
+"Traceback (most recent call last):\n"
+"  File \"<stdin>\", line 1, in <module>\n"
+"TypeError: descriptor '__hash__' of 'int' object needs an argument"
 
 #: ../Doc/reference/datamodel.rst:3363
 msgid ""
@@ -5458,6 +5602,10 @@ msgid ""
 ">>> type(int).__hash__(int) == hash(int)\n"
 "True"
 msgstr ""
+">>> type(1).__hash__(1) == hash(1)\n"
+"True\n"
+">>> type(int).__hash__(int) == hash(int)\n"
+"True"
 
 #: ../Doc/reference/datamodel.rst:3372
 msgid ""
@@ -5493,6 +5641,28 @@ msgid ""
 ">>> len(c)                      # Implicit lookup\n"
 "10"
 msgstr ""
+">>> class Meta(type):\n"
+"...     def __getattribute__(*args):\n"
+"...         print(\"Metaclass getattribute invoked\")\n"
+"...         return type.__getattribute__(*args)\n"
+"...\n"
+">>> class C(object, metaclass=Meta):\n"
+"...     def __len__(self):\n"
+"...         return 10\n"
+"...     def __getattribute__(*args):\n"
+"...         print(\"Class getattribute invoked\")\n"
+"...         return object.__getattribute__(*args)\n"
+"...\n"
+">>> c = C()\n"
+">>> c.__len__()                 # Búsqueda explícita a través de la "
+"instancia\n"
+"Class getattribute invoked\n"
+"10\n"
+">>> type(c).__len__(c)          # Búsqueda explícita a través de type\n"
+"Metaclass getattribute invoked\n"
+"10\n"
+">>> len(c)                      # Búsqueda implícita\n"
+"10"
 
 #: ../Doc/reference/datamodel.rst:3398
 msgid ""
@@ -5602,7 +5772,6 @@ msgstr ""
 "Es un error :exc:`RuntimeError` esperar a una corrutina más de una vez."
 
 #: ../Doc/reference/datamodel.rst:3467
-#, fuzzy
 msgid ""
 "Starts or resumes execution of the coroutine.  If *value* is ``None``, this "
 "is equivalent to advancing the iterator returned by :meth:`~object."
@@ -5617,7 +5786,7 @@ msgstr ""
 "*value* no es ``None``, este método delega en el método :meth:`~generator."
 "send` del iterador que provocó la suspensión de la rutina. El resultado "
 "(valor de retorno, :exc:`StopIteration` u otra excepción) es el mismo que "
-"cuando se itera sobre el valor de retorno :meth:`__await__`, descrito "
+"cuando se itera sobre el valor de retorno :meth:`!__await__`, descrito "
 "anteriormente."
 
 #: ../Doc/reference/datamodel.rst:3478
@@ -5721,6 +5890,18 @@ msgid ""
 "            raise StopAsyncIteration\n"
 "        return val"
 msgstr ""
+"class Reader:\n"
+"    async def readline(self):\n"
+"        ...\n"
+"\n"
+"    def __aiter__(self):\n"
+"        return self\n"
+"\n"
+"    async def __anext__(self):\n"
+"        val = await self.readline()\n"
+"        if val == b'':\n"
+"            raise StopAsyncIteration\n"
+"        return val"
 
 #: ../Doc/reference/datamodel.rst:3541
 msgid ""
@@ -5763,22 +5944,20 @@ msgstr ""
 "declaración :keyword:`async with`."
 
 #: ../Doc/reference/datamodel.rst:3563
-#, fuzzy
 msgid ""
 "Semantically similar to :meth:`~object.__enter__`, the only difference being "
 "that it must return an *awaitable*."
 msgstr ""
-"Semánticamente similar a :meth:`__enter__`, siendo la única diferencia que "
-"debe retorna un *esperable*."
+"Semánticamente similar a :meth:`~object.__enter__`, siendo la única "
+"diferencia que debe retornar un *esperable*."
 
 #: ../Doc/reference/datamodel.rst:3568
-#, fuzzy
 msgid ""
 "Semantically similar to :meth:`~object.__exit__`, the only difference being "
 "that it must return an *awaitable*."
 msgstr ""
-"Semánticamente similar a :meth:`__exit__`, siendo la única diferencia que "
-"debe retornar un *esperable*."
+"Semánticamente similar a :meth:`~object.__exit__`, siendo la única "
+"diferencia que debe retornar un *esperable*."
 
 #: ../Doc/reference/datamodel.rst:3571
 msgid "An example of an asynchronous context manager class::"
@@ -5793,6 +5972,12 @@ msgid ""
 "    async def __aexit__(self, exc_type, exc, tb):\n"
 "        await log('exiting context')"
 msgstr ""
+"class AsyncContextManager:\n"
+"    async def __aenter__(self):\n"
+"        await log('entering context')\n"
+"\n"
+"    async def __aexit__(self, exc_type, exc, tb):\n"
+"        await log('exiting context')"
 
 #: ../Doc/reference/datamodel.rst:3584
 msgid "Footnotes"
@@ -5809,7 +5994,6 @@ msgstr ""
 "llevar a un comportamiento bastante extraño de no ser tratado correctamente."
 
 #: ../Doc/reference/datamodel.rst:3589
-#, fuzzy
 msgid ""
 "The :meth:`~object.__hash__`, :meth:`~object.__iter__`, :meth:`~object."
 "__reversed__`, :meth:`~object.__contains__`, :meth:`~object."
@@ -5818,24 +6002,23 @@ msgid ""
 "by relying on the behavior that ``None`` is not callable."
 msgstr ""
 "Los métodos :meth:`~object.__hash__`, :meth:`~object.__iter__`, :meth:"
-"`~object.__reversed__` y :meth:`~object.__contains__` tienen un manejo "
-"especial para esto; otros seguirán generando un :exc:`TypeError`, pero "
-"pueden hacerlo confiando en el comportamiento de que ``None`` no es "
-"invocable."
+"`~object.__reversed__`, :meth:`~object.__contains__`, :meth:`~object."
+"__class_getitem__` y :meth:`~os.PathLike.__fspath__` tienen un manejo "
+"especial para esto. Otros seguirán lanzando un :exc:`TypeError`, pero pueden "
+"hacerlo confiando en el comportamiento de que ``None`` no es invocable."
 
 #: ../Doc/reference/datamodel.rst:3596
-#, fuzzy
 msgid ""
 "\"Does not support\" here means that the class has no such method, or the "
 "method returns :data:`NotImplemented`.  Do not set the method to ``None`` if "
 "you want to force fallback to the right operand's reflected method—that will "
 "instead have the opposite effect of explicitly *blocking* such fallback."
 msgstr ""
-"“No soporta” aquí significa que la clase no tiene tal método, o el método "
-"retorna ``NotImplemented``. No establecer el método a ``None`` si se quiere "
-"forzar el retroceso al método reflejado del operando correcto—eso, por el "
-"contrario, tendrá un efecto opuesto de bloquear explícitamente dicho "
-"retroceso."
+"\"No soporta\" aquí significa que la clase no tiene tal método, o el método "
+"retorna :data:`NotImplemented`. No establecer el método a ``None`` si se "
+"quiere forzar el retroceso al método reflejado del operando correcto—eso, "
+"por el contrario, tendrá un efecto opuesto de *bloquear* explícitamente "
+"dicho retroceso."
 
 #: ../Doc/reference/datamodel.rst:3602
 msgid ""
@@ -5865,7 +6048,7 @@ msgstr ""
 #: ../Doc/reference/datamodel.rst:1388 ../Doc/reference/datamodel.rst:1498
 #: ../Doc/reference/datamodel.rst:1912 ../Doc/reference/datamodel.rst:2927
 msgid "object"
-msgstr "Objetos"
+msgstr "object"
 
 #: ../Doc/reference/datamodel.rst:14 ../Doc/reference/datamodel.rst:126
 msgid "data"
@@ -5882,7 +6065,7 @@ msgstr "datos"
 #: ../Doc/reference/datamodel.rst:3153 ../Doc/reference/datamodel.rst:3163
 #: ../Doc/reference/datamodel.rst:3191
 msgid "built-in function"
-msgstr "Funciones incorporadas"
+msgstr "built-in function"
 
 #: ../Doc/reference/datamodel.rst:23
 msgid "id"
@@ -5891,7 +6074,7 @@ msgstr "identificación"
 #: ../Doc/reference/datamodel.rst:23 ../Doc/reference/datamodel.rst:126
 #: ../Doc/reference/datamodel.rst:2468
 msgid "type"
-msgstr "Tipos"
+msgstr "type"
 
 #: ../Doc/reference/datamodel.rst:23
 msgid "identity of an object"
@@ -5903,15 +6086,15 @@ msgstr "valor de un objeto"
 
 #: ../Doc/reference/datamodel.rst:23
 msgid "type of an object"
-msgstr "Tipos de objeto"
+msgstr "type of an object"
 
 #: ../Doc/reference/datamodel.rst:23
 msgid "mutable object"
-msgstr "Objetos mutables"
+msgstr "mutable object"
 
 #: ../Doc/reference/datamodel.rst:23
 msgid "immutable object"
-msgstr "Objetos inmutables"
+msgstr "immutable object"
 
 #: ../Doc/reference/datamodel.rst:60
 msgid "garbage collection"
@@ -5942,7 +6125,7 @@ msgstr "extensión"
 #: ../Doc/reference/datamodel.rst:856 ../Doc/reference/datamodel.rst:876
 #: ../Doc/reference/datamodel.rst:1132
 msgid "module"
-msgstr "Módulo"
+msgstr "module"
 
 #: ../Doc/reference/datamodel.rst:126 ../Doc/reference/datamodel.rst:265
 #: ../Doc/reference/datamodel.rst:798
@@ -5991,7 +6174,7 @@ msgstr "representación"
 
 #: ../Doc/reference/datamodel.rst:250
 msgid "Boolean"
-msgstr "booleano"
+msgstr "Boolean"
 
 #: ../Doc/reference/datamodel.rst:250
 msgid "False"
@@ -6002,7 +6185,6 @@ msgid "True"
 msgstr "Verdad"
 
 #: ../Doc/reference/datamodel.rst:265
-#, fuzzy
 msgid "floating-point"
 msgstr "punto flotante"
 
@@ -6025,7 +6207,7 @@ msgstr "len"
 
 #: ../Doc/reference/datamodel.rst:296 ../Doc/reference/datamodel.rst:1103
 msgid "sequence"
-msgstr "Secuencias"
+msgstr "sequence"
 
 #: ../Doc/reference/datamodel.rst:296
 msgid "index operation"
@@ -6046,7 +6228,7 @@ msgstr "rebanar"
 
 #: ../Doc/reference/datamodel.rst:328
 msgid "immutable sequence"
-msgstr "Secuencia inmutable"
+msgstr "immutable sequence"
 
 #: ../Doc/reference/datamodel.rst:328
 msgid "immutable"
@@ -6373,14 +6555,12 @@ msgid "__type_params__ (class attribute)"
 msgstr "__type_params__ (atributo de clase)"
 
 #: ../Doc/reference/datamodel.rst:967
-#, fuzzy
 msgid "__static_attributes__ (class attribute)"
-msgstr "__dict__ (atributo de clase)"
+msgstr "__static_attributes__ (atributo de clase)"
 
 #: ../Doc/reference/datamodel.rst:967
-#, fuzzy
 msgid "__firstlineno__ (class attribute)"
-msgstr "__name__ (atributo de clase)"
+msgstr "__firstlineno__ (atributo de clase)"
 
 #: ../Doc/reference/datamodel.rst:1114
 msgid "__dict__ (instance attribute)"