diff --git a/dictionaries/library_dataclasses.txt b/dictionaries/library_dataclasses.txt new file mode 100644 index 0000000000..ef2c077293 --- /dev/null +++ b/dictionaries/library_dataclasses.txt @@ -0,0 +1,2 @@ +pseudocampo +pseudocampos diff --git a/library/dataclasses.po b/library/dataclasses.po index 520773e7c6..04206a70e6 100644 --- a/library/dataclasses.po +++ b/library/dataclasses.po @@ -11,16 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: 2020-07-03 14:11-0300\n" +"PO-Revision-Date: 2020-09-12 00:36+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Ignacio Dopazo \n" -"Language: es_AR\n" -"X-Generator: Poedit 2.3.1\n" +"Last-Translator: Francisco Jesús Sevilla García \n" +"Language: es_ES\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/library/dataclasses.rst:2 msgid ":mod:`dataclasses` --- Data Classes" @@ -28,7 +28,7 @@ msgstr ":mod:`dataclasses` --- Clases de datos" #: ../Doc/library/dataclasses.rst:10 msgid "**Source code:** :source:`Lib/dataclasses.py`" -msgstr "" +msgstr "**Código fuente:** :source:`Lib/dataclasses.py`" #: ../Doc/library/dataclasses.rst:14 msgid "" @@ -37,25 +37,25 @@ msgid "" "`__repr__` to user-defined classes. It was originally described in :pep:" "`557`." msgstr "" -"Este módulo provee un decorador y funciones para añadir :term:`los métodos " -"especiales ` automáticamente, como por ejemplo :meth:" -"`__init__` y :meth:`__repr__`, a clases definidas por el usuario. Fue " -"originalmente descrito en :pep:`557`." +"Este módulo provee un decorador y funciones para añadir :term:`métodos " +"especiales ` automáticamente, como :meth:`__init__` y :meth:" +"`__repr__` por ejemplo, a clases definidas por el usuario. Fue originalmente " +"descrito en :pep:`557`." #: ../Doc/library/dataclasses.rst:19 msgid "" "The member variables to use in these generated methods are defined using :" "pep:`526` type annotations. For example this code::" msgstr "" -"Cada variable miembro a utilizar en estos métodos generados son definidas " -"teniendo en cuenta :pep:`526` para anotaciones de tipo. Por ejemplo en este " +"Las variables miembro a utilizar en estos métodos generados son definidas " +"teniendo en cuenta anotaciones de tipo :pep:`526`. Por ejemplo, en este " "código::" #: ../Doc/library/dataclasses.rst:32 msgid "Will add, among other things, a :meth:`__init__` that looks like::" msgstr "" -"Añadirá, además de otros métodos, un :meth:`__init__` con la siguiente " -"forma::" +"Añadirá, además de otros métodos, un método :meth:`__init__` con la " +"siguiente estructura::" #: ../Doc/library/dataclasses.rst:39 msgid "" @@ -75,9 +75,9 @@ msgid "" "This function is a :term:`decorator` that is used to add generated :term:" "`special method`\\s to classes, as described below." msgstr "" -"Esta función es un :term:`decorator` utilizado para añadir :term:`los " -"métodos especiales ` generados a las clases, como se " -"describe a continuación." +"Esta función es un :term:`decorator` utilizado para añadir a las clases :" +"term:`los métodos especiales ` generados, como se describe a " +"continuación." #: ../Doc/library/dataclasses.rst:52 msgid "" @@ -86,11 +86,11 @@ msgid "" "`. With two exceptions described below, nothing in :" "func:`dataclass` examines the type specified in the variable annotation." msgstr "" -"El decorador :func:`dataclass` examina la clase para encontrar ``field``\\s. " -"Un ``field`` se define como una variable de clase que tiene una :term:" -"`anotación de variable `. A excepción de los dos casos " -"descriptos debajo, nada en :func:`dataclass` examina el tipo especificado en " -"la anotación de variable." +"El decorador :func:`dataclass` examina la clase para encontrar ``fields``. " +"Un ``field`` ('campo') se define como una variable de clase que tiene una :" +"term:`anotación de variable `. A excepción de los dos " +"casos descritos debajo, nada en :func:`dataclass` examina el tipo " +"especificado en la anotación de variable." #: ../Doc/library/dataclasses.rst:58 msgid "" @@ -107,11 +107,11 @@ msgid "" "class, the behavior depends on the parameter, as documented below. The " "decorator returns the same class that is called on; no new class is created." msgstr "" -"El decorador :func:`dataclass` añade varios métodos mágicos \"*dunder*\" a " -"la clase, descripto a continuación. Si algo de los métodos añadidos ya " -"existe en la definición de la clase, el comportamiento dependerá del " -"parámetro. El decorador retorna la misma clase que es llamada, no crea una " -"nueva." +"El decorador :func:`dataclass` añade varios métodos \"*dunder*" +"\" (abreviación de 'double underline') a la clase, descritos a continuación. " +"Si alguno de los métodos añadidos ya existe en la definición de la clase, el " +"comportamiento dependerá del parámetro, como se documenta abajo. El " +"decorador retorna la misma clase con la que es llamado, no crea una nueva." #: ../Doc/library/dataclasses.rst:67 msgid "" @@ -119,9 +119,9 @@ msgid "" "it acts as if it has the default values documented in this signature. That " "is, these three uses of :func:`dataclass` are equivalent::" msgstr "" -"Si :func:`dataclass` es llamada sin parámetros, actúa con los valores por " -"defecto documentados aquí. Específicamente, los siguientes tres usos de :" -"func:`dataclass` son equivalentes::" +"Si :func:`dataclass` es llamado como un simple decorador sin parámetros, " +"actúa con los valores por defecto documentados aquí. Específicamente, los " +"siguientes tres usos de :func:`dataclass` son equivalentes::" #: ../Doc/library/dataclasses.rst:84 msgid "The parameters to :func:`dataclass` are:" @@ -131,8 +131,8 @@ msgstr "Los parámetros de :func:`dataclass` son:" msgid "" "``init``: If true (the default), a :meth:`__init__` method will be generated." msgstr "" -"``init``: Si es verdadero (valor por defecto) el método :meth:`__init__` es " -"generado." +"``init``: Si es verdadero (valor por defecto), el método :meth:`__init__` " +"será generado." #: ../Doc/library/dataclasses.rst:89 msgid "" @@ -148,12 +148,12 @@ msgid "" "example: ``InventoryItem(name='widget', unit_price=3.0, " "quantity_on_hand=10)``." msgstr "" -"``repr``: Si es verdadero (valor por defecto) el método :meth:`__repr__` es " -"generado. La cadena de caracteres generada por repr tendrá el nombre de la " -"clase y el repr de cada campo en el mismo orden en el que están definidos en " -"la clase; es posible especificar que ciertos campos sean ignorados por este " -"método. Por ejemplo: ``InventoryItem(name='widget', unit_price=3.0, " -"quantity_on_hand=10)``." +"``repr``: Si es verdadero (valor por defecto), el método :meth:`__repr__` es " +"generado. La cadena de representación generada tendrá el nombre de la clase " +"junto al nombre y la representación de cada uno de sus campos, en el mismo " +"orden en el que están definidos en la clase. Es posible indicar que ciertos " +"campos no sean incluidos en la representación. Por ejemplo: " +"``InventoryItem(name='widget', unit_price=3.0, quantity_on_hand=10)``." #: ../Doc/library/dataclasses.rst:99 msgid "" @@ -166,11 +166,11 @@ msgid "" "This method compares the class as if it were a tuple of its fields, in " "order. Both instances in the comparison must be of the identical type." msgstr "" -"``eq``: Si es verdadero (por defecto) el método :meth:`__eq__` es generado. " +"``eq``: Si es verdadero (por defecto), el método :meth:`__eq__` es generado. " "Este método compara entre instancias de la clase representando cada una de " -"ellas con una tupla, siendo los elementos de la misma los campos de la clase " -"ubicados en el mismo orden en el que fueron definidos (dos tuplas son " -"iguales si y sólo si sus campos son iguales)." +"ellas mediante una tupla, siendo los elementos de la misma los campos de la " +"clase ubicados en el mismo orden en el que fueron definidos (dos tuplas son " +"iguales si, y sólo si, sus campos son iguales)." #: ../Doc/library/dataclasses.rst:107 msgid "If the class already defines :meth:`__eq__`, this parameter is ignored." @@ -184,28 +184,27 @@ msgid "" "instances in the comparison must be of the identical type. If ``order`` is " "true and ``eq`` is false, a :exc:`ValueError` is raised." msgstr "" -"``order``: Si es verdadero ( ``False`` es el valor por defecto), :meth:" -"`__lt__`, :meth:`__le__`, :meth:`__gt__` y :meth:`__ge__` son generados. " -"Estos permiten comparaciones entre instancias de la clase como si fueran una " -"tupla de sus campos (en orden). Ambas instancias a comparar deben ser del " -"mismo tipo. Si ``order`` es verdadero y ``eq`` falso, lanza la excepción :" -"exc:`ValueError`." +"``order``: Si es verdadero (``False`` es el valor por defecto), los métodos :" +"meth:`__lt__`, :meth:`__le__`, :meth:`__gt__` y :meth:`__ge__` serán " +"generados. Estos métodos comparan la clase como si fuera una tupla con sus " +"campos, en orden. Ambas instancias en la comparación deben ser del mismo " +"tipo. Si ``order`` es verdadero y ``eq`` falso, se lanza una excepción :exc:" +"`ValueError`." #: ../Doc/library/dataclasses.rst:117 msgid "" "If the class already defines any of :meth:`__lt__`, :meth:`__le__`, :meth:" "`__gt__`, or :meth:`__ge__`, then :exc:`TypeError` is raised." msgstr "" -"Si la clase ya define alguno de los siguientes métodos: :meth:`__lt__`, :" -"meth:`__le__`, :meth:`__gt__` o :meth:`__ge__`, lanza la excepción :exc:" -"`TypeError`." +"Si la clase ya define :meth:`__lt__`, :meth:`__le__`, :meth:`__gt__` o :meth:" +"`__ge__`, se lanza una excepción :exc:`TypeError`." #: ../Doc/library/dataclasses.rst:121 msgid "" "``unsafe_hash``: If ``False`` (the default), a :meth:`__hash__` method is " "generated according to how ``eq`` and ``frozen`` are set." msgstr "" -"``unsafe_hash``: Si ``False`` (por defecto), se genera el método :meth:" +"``unsafe_hash``: Si es ``False`` (por defecto), se genera el método :meth:" "`__hash__` de acuerdo a los valores de ``eq`` y ``frozen`` definidos." #: ../Doc/library/dataclasses.rst:124 @@ -217,14 +216,14 @@ msgid "" "existence and behavior of :meth:`__eq__`, and the values of the ``eq`` and " "``frozen`` flags in the :func:`dataclass` decorator." msgstr "" -":meth:`__hash__` es utilizado por el método incorporado :meth:`hash()` y " +":meth:`__hash__` es utilizado por la función incorporada :meth:`hash()` y " "cuando los objetos definidos por la clase son añadidos a colecciones hash, " -"como por ejemplo diccionarios y conjuntos. Una clase con el método :meth:" -"`__hash__` definido implica que sus instancias son inmutables. La " -"mutabilidad es una propiedad compleja, ya que depende de: cómo el " -"programador utilice el objeto, la existencia y comportamiento de :meth:" -"`__eq__` y del valor asignado a las banderas ``eq`` y ``frozen`` en el " -"decorador :func:`dataclass`." +"como por ejemplo diccionarios y conjuntos. Definir el método :meth:" +"`__hash__` en una clase implica que sus instancias son inmutables. La " +"mutabilidad es una propiedad compleja, ya que depende de cómo el programador " +"utilice el objeto, la existencia y comportamiento de :meth:`__eq__` y del " +"valor asignado a las flags ``eq`` y ``frozen`` en el decorador :func:" +"`dataclass`." #: ../Doc/library/dataclasses.rst:131 msgid "" @@ -234,14 +233,13 @@ msgid "" "attribute ``__hash__ = None`` has a specific meaning to Python, as described " "in the :meth:`__hash__` documentation." msgstr "" -":func:`dataclass` no añade por defecto (de forma implícita) el método :meth:" -"`__hash__` a menos que sea seguro hacerlo, tampoco añade o cambia un método :" -"meth:`__hash__` explícitamente ya definido. Definir el atributo de clase " -"``__hash__ = None`` tiene un significado específico en Python, descripto en " -"la documentación dedicada a :meth:`__hash__`." +"Por defecto, :func:`dataclass` no añade de forma implícita el método :meth:" +"`__hash__` a menos que sea seguro hacerlo. Tampoco añade o cambia un método :" +"meth:`__hash__` previamente definido de forma explícita. Definir el atributo " +"de clase ``__hash__ = None`` tiene un significado específico en Python, " +"descrito en la documentación dedicada a :meth:`__hash__`." #: ../Doc/library/dataclasses.rst:137 -#, fuzzy msgid "" "If :meth:`__hash__` is not explicit defined, or if it is set to ``None``, " "then :func:`dataclass` *may* add an implicit :meth:`__hash__` method. " @@ -251,12 +249,12 @@ msgid "" "specialized use case and should be considered carefully." msgstr "" "Si :meth:`__hash__` no está definido explícitamente o si es designado como " -"``None``, :func:`dataclass` *quizás* añade implícitamente el método :meth:" +"``None``, :func:`dataclass` *puede* añadir implícitamente el método :meth:" "`__hash__`. Aunque no sea recomendable, es posible forzar que :func:" -"`dataclass`cree un método :meth:`__hash__` mediante ``unsafe_hash=True``; " -"esto es factible si su clase es lógicamente inmutable pero sin embargo puede " -"ser modificada. Este es un caso especial de uso que debe ser considerado " -"cuidadosamente." +"`dataclass` cree un método :meth:`__hash__` mediante ``unsafe_hash=True``; " +"esto es factible si su clase es lógicamente inmutable pero, sin embargo, " +"puede ser modificada. Este es un caso especial de uso que debe ser " +"considerado cuidadosamente." #: ../Doc/library/dataclasses.rst:144 msgid "" @@ -265,10 +263,11 @@ msgid "" "in your dataclass and set ``unsafe_hash=True``; this will result in a :exc:" "`TypeError`." msgstr "" -"A continuación se explican las reglas que aplican en la creación implícita " -"del método :meth:`__hash__`. Observar que no es compatible definir " -"explícitamente :meth:`__hash__` en su clase y a su vez asignar " -"``unsafe_hash=True``; esto lanza la excepción :exc:`TypeError`." +"A continuación se explican las reglas que se aplican en la creación " +"implícita del método :meth:`__hash__`. Observar que no es compatible definir " +"explícitamente un método :meth:`__hash__` en su clase de datos y al mismo " +"tiempo asignar ``unsafe_hash=True``; esto lanza una excepción :exc:" +"`TypeError`." #: ../Doc/library/dataclasses.rst:149 msgid "" @@ -280,14 +279,14 @@ msgid "" "superclass will be used (if the superclass is :class:`object`, this means it " "will fall back to id-based hashing)." msgstr "" -"Si ``eq`` y ``frozen`` son verdaderos, :func:`dataclass` genera por defecto " -"un método :meth:`hash` por ti. En el caso que ``eq`` sea verdadero y " +"Si ``eq`` y ``frozen`` son ambos verdaderos, :func:`dataclass` genera por " +"defecto un método :meth:`hash` por ti. En el caso que ``eq`` sea verdadero y " "``frozen`` falso, a :meth:`__hash__` se le asigna ``None``, en consecuencia " "será *unhashable* (lo cual es deseable, ya que es mutable). Si ``eq`` es " -"falso :meth:`__hash__` permanece sin cambios, por lo tanto en este caso " -"aplica el uso del método :meth:`hash` heredado de la superclase (sólo si la " -"superclase es :class:`object`, esto significa que cae en manos del *hashing* " -"basado en el id de los objetos)." +"falso, :meth:`__hash__` permanece sin cambios, por lo que en este caso se " +"hará uso del método :meth:`hash` heredado de la superclase (lo que implica " +"que si la superclase es :class:`object`, se aplicará el *hashing* basado en " +"el id de los objetos)." #: ../Doc/library/dataclasses.rst:157 msgid "" @@ -297,25 +296,26 @@ msgid "" "`TypeError` is raised. See the discussion below." msgstr "" "``frozen``: Si es verdadero (el valor por defecto es ``False``), cualquier " -"asignación a un campo de la clase lanza una excepción. Esto emula el " -"comportamiento de las instancias *frozen* de sólo lectura. Si :meth:" -"`__setattr__` o :meth:`___delattr__` son definidos en la clase, lanzará la " -"excepción :exc:`TypeError`. Esto es ampliado debajo." +"intento de asignación a un campo de la clase lanza una excepción. Esto emula " +"el comportamiento de las instancias congeladas (*frozen*) de sólo lectura. " +"Si :meth:`__setattr__` o :meth:`__delattr__` son definidos en la clase, se " +"lanzará una excepción :exc:`TypeError`. Esto es ampliado más abajo." #: ../Doc/library/dataclasses.rst:162 msgid "" "``field``\\s may optionally specify a default value, using normal Python " "syntax::" msgstr "" -"Los ``fields`` pueden, opcionalmente, especificar un valor por defecto::" +"Los ``fields`` pueden especificar un valor por defecto opcionalmente, " +"simplemente usando la sintaxis normal de Python::" #: ../Doc/library/dataclasses.rst:170 msgid "" "In this example, both ``a`` and ``b`` will be included in the added :meth:" "`__init__` method, which will be defined as::" msgstr "" -"En este ejemplo, ``a`` y ``b`` serán incluidos en el método generado :meth:" -"`__init__`, el cual es definido como sigue::" +"En este ejemplo, tanto ``a`` como ``b`` serán incluidos en el método :meth:" +"`__init__` agregado, el cual será definido como sigue::" #: ../Doc/library/dataclasses.rst:175 msgid "" @@ -324,8 +324,9 @@ msgid "" "single class, or as a result of class inheritance." msgstr "" "Si, en la definición de una clase, a un campo con valor por defecto le sigue " -"un campo sin valor por defecto será lanzada la excepción :exc:`TypeError`. " -"Esto aplica también en la definición de una clase mediante herencia." +"un campo sin valor por defecto será lanzada una excepción :exc:`TypeError`. " +"Esto se aplica también a la implementación de una clase única o como " +"resultado de herencia de clases." #: ../Doc/library/dataclasses.rst:181 msgid "" @@ -336,10 +337,10 @@ msgid "" "function. For example::" msgstr "" "Para casos de uso común, estas funcionalidades son suficientes. Sin embargo, " -"existen otras características de *dataclass* que requieren información " -"adicional en ciertos campos. Para satisfacer esta necesidad, es posible " -"reemplazar cualquier valor por defecto de un campo mediante una llamada a la " -"función :func:`field`. Por ejemplo::" +"existen otras características de las clases de datos que requieren " +"información adicional en ciertos campos. Para satisfacer esta necesidad, es " +"posible reemplazar cualquier valor por defecto de un campo mediante una " +"llamada a la función :func:`field`. Por ejemplo::" #: ../Doc/library/dataclasses.rst:194 msgid "" @@ -350,8 +351,8 @@ msgid "" msgstr "" "Como se muestra arriba, el valor ``MISSING`` es un objeto centinela " "utilizado para detectar si los parámetros ``default`` y ``default_factory`` " -"son provistos. Este objeto centinela es utilizado ya que ``None`` es un " -"valor válido para ``default``. Ningún procedimiento debe utilizar " +"son provistos. Este objeto centinela es utilizado debido a que ``None`` es " +"un valor válido para ``default``. Ningún procedimiento debe utilizar " "directamente el valor ``MISSING``." #: ../Doc/library/dataclasses.rst:200 @@ -365,8 +366,8 @@ msgid "" "position of the default value." msgstr "" "``default``: Si es provisto, este será el valor por defecto para este campo. " -"Es necesario que sea definido ya que la propia llamada :meth:`field` " -"reemplaza automáticamente la posición del valor *default*." +"Es necesario que sea definido ya que la propia llamada a :meth:`field` " +"reemplaza la posición normal del valor por defecto." #: ../Doc/library/dataclasses.rst:206 msgid "" @@ -377,7 +378,7 @@ msgid "" "``default_factory``." msgstr "" "``default_factory``: Si es provisto, debe ser un objeto invocable sin " -"argumentos el cual será llamado cuando el valor por defecto de este campo " +"argumentos, el cual será llamado cuando el valor por defecto de este campo " "sea necesario. Además de otros propósitos, puede ser utilizado para " "especificar campos con valores por defecto mutables, como se explica a " "continuación. Especificar tanto ``default`` como ``default_factory`` resulta " @@ -405,7 +406,7 @@ msgid "" "equality and comparison methods (:meth:`__eq__`, :meth:`__gt__`, et al.)." msgstr "" "``compare``: Si es verdadero (por defecto), este campo es incluido en los " -"métodos de comparación generados: :meth:`__eq__`, :meth:`__gt__` y otros." +"métodos de comparación generados (:meth:`__eq__`, :meth:`__gt__` y otros)." #: ../Doc/library/dataclasses.rst:222 msgid "" @@ -416,11 +417,11 @@ msgid "" "Setting this value to anything other than ``None`` is discouraged." msgstr "" "``hash``: Su valor puede ser de tipo booleano o ``None``. Si es verdadero, " -"este campo es incluido en el método :meth:`__hash__` generado. Si ``None`` " -"(por defecto), utiliza el valor de ``compare``; normalmente éste es el " -"comportamiento esperado, un campo debería ser considerado para el *hash* si " -"el mismo es compatible con operaciones de comparación. Está desaconsejado " -"establecer este valor como otro que no sea ``None``." +"este campo es incluido en el método :meth:`__hash__` generado. Si es " +"``None`` (por defecto), utiliza el valor de ``compare``: normalmente éste es " +"el comportamiento esperado. Un campo debería ser considerado para el *hash* " +"si es compatible con operaciones de comparación. Está desaconsejado " +"establecer este valor en algo que no sea ``None``." #: ../Doc/library/dataclasses.rst:229 msgid "" @@ -431,13 +432,12 @@ msgid "" "used for comparisons." msgstr "" "Una posible razón para definir ``hash=False`` y ``compare=True`` podría ser " -"en el caso que computar el valor *hash* para dicho campo es costoso, es " -"necesario que tenga definido métodos de comparación y además otros campos " -"contribuyen a determinar el tipo del valor *hash*. Aunque un campo sea " -"excluido del *hash*, puede ser sujeto a comparaciones." +"el caso en el que computar el valor *hash* para dicho campo es costoso pero " +"el campo es necesario para los métodos de comparación, siempre que existan " +"otros campos que contribuyen al valor hash del tipo. Incluso si un campo se " +"excluye del hash, se seguirá utilizando a la hora de comparar." #: ../Doc/library/dataclasses.rst:235 -#, fuzzy msgid "" "``metadata``: This can be a mapping or None. None is treated as an empty " "dict. This value is wrapped in :func:`~types.MappingProxyType` to make it " @@ -446,12 +446,12 @@ msgid "" "Multiple third-parties can each have their own key, to use as a namespace in " "the metadata." msgstr "" -"``metadata``: Puede ser un mapeo o None. None es tratado como un diccionario " -"vacío. Este valor es envuelto en :func:`~types.MappingProxyType` para que " -"sea de sólo lectura y visible en el objeto :class:`Field`. No es utilizado " -"por Clases de datos, mas bien es provista como un mecanismo de extensión de " -"terceros. Varios terceros pueden tener su propia clave a utilizar como " -"espacio de nombres en *metadata*." +"``metadata``: Puede ser un mapeo o *None*. *None* es tratado como un " +"diccionario vacío. Este valor es envuelto en :func:`~types.MappingProxyType` " +"para que sea de sólo lectura y visible en el objeto :class:`Field`. No es " +"utilizado por las clases de datos, mas bien es provisto como un mecanismo de " +"extensión de terceros. Varios terceros pueden tener su propia clave para " +"utilizar como espacio de nombres en *metadata*." #: ../Doc/library/dataclasses.rst:243 msgid "" @@ -476,8 +476,8 @@ msgid "" "The class attribute ``C.z`` will be ``10``, the class attribute ``C.t`` will " "be ``20``, and the class attributes ``C.x`` and ``C.y`` will not be set." msgstr "" -"El atributo ``C.z`` será ``10``, el atributo ``C.t`` será ``20`` y los " -"atributos ``C.x`` y ``C.y`` estarán sin definir." +"El atributo de clase ``C.z`` será ``10``, el atributo de clase ``C.t`` será " +"``20`` y los atributos de clase ``C.x`` y ``C.y`` no serán definidos." #: ../Doc/library/dataclasses.rst:265 msgid "" @@ -487,14 +487,13 @@ msgid "" "directly. Its documented attributes are:" msgstr "" "Los objetos :class:`Field` describen cada campo definido. Estos objetos son " -"creados implícitamente y son retornados por el método :func:`fields` " -"definido en este módulo (explicado más abajo). Los usuarios no deben " -"instanciar un objeto :class:`Field` directamente. Sus atributos documentados " -"son:" +"creados internamente y son retornados por el método :func:`fields` definido " +"en este módulo (explicado más abajo). Los usuarios no deben instanciar un " +"objeto :class:`Field` directamente. Sus atributos documentados son:" #: ../Doc/library/dataclasses.rst:270 msgid "``name``: The name of the field." -msgstr "``name``: Nombre del campo." +msgstr "``name``: El nombre del campo." #: ../Doc/library/dataclasses.rst:272 msgid "``type``: The type of the field." @@ -508,7 +507,7 @@ msgid "" msgstr "" "``default``, ``default_factory``, ``init``, ``repr``, ``hash``, ``compare`` " "y ``metadata`` tienen los mismos valores y significados respecto a la " -"declaración de :func:`field` (arriba)." +"declaración de :func:`field` (ver arriba)." #: ../Doc/library/dataclasses.rst:278 msgid "" @@ -516,7 +515,7 @@ msgid "" "or relied on." msgstr "" "Pueden existir otros atributos, pero son privados y no deberían ser " -"examinados ni depender de ellos." +"considerados ni depender de ellos." #: ../Doc/library/dataclasses.rst:283 msgid "" @@ -525,6 +524,10 @@ msgid "" "Raises :exc:`TypeError` if not passed a dataclass or instance of one. Does " "not return pseudo-fields which are ``ClassVar`` or ``InitVar``." msgstr "" +"Retorna una tupla de objetos :class:`Field` que definen los campos para esta " +"clase de datos. Acepta tanto una clase de datos como una instancia de esta. " +"Lanza una excepción :exc:`TypeError` si se le pasa cualquier otro objeto. No " +"retorna pseudocampos, que son ``ClassVar`` o ``InitVar``." #: ../Doc/library/dataclasses.rst:290 msgid "" @@ -533,10 +536,17 @@ msgid "" "``name: value`` pairs. dataclasses, dicts, lists, and tuples are recursed " "into. For example::" msgstr "" +"Convierte la clase de datos ``instance`` en un diccionario (usando la " +"función fábrica ``dict_factory``). Cada clase de datos es convertida a un " +"diccionario con sus campos como parejas ``name: value``. Las clases de " +"datos, diccionarios, listas y tuplas son convertidas recursivamente. Por " +"ejemplo::" #: ../Doc/library/dataclasses.rst:310 ../Doc/library/dataclasses.rst:324 msgid "Raises :exc:`TypeError` if ``instance`` is not a dataclass instance." msgstr "" +"Lanza una excepción :exc:`TypeError` si ``instance`` no es una instancia de " +"una clase de datos." #: ../Doc/library/dataclasses.rst:314 msgid "" @@ -544,10 +554,14 @@ msgid "" "function ``tuple_factory``). Each dataclass is converted to a tuple of its " "field values. dataclasses, dicts, lists, and tuples are recursed into." msgstr "" +"Convierte la clase de datos ``instance`` a una tupla (usando la función " +"fábrica ``tuple_factory``). Cada clase de datos es convertida a una tupla " +"con los valores de sus campos. Las clases de datos, diccionarios, listas y " +"tuplas son convertidas recursivamente." #: ../Doc/library/dataclasses.rst:319 msgid "Continuing from the previous example::" -msgstr "" +msgstr "Continuando con el ejemplo anterior::" #: ../Doc/library/dataclasses.rst:328 msgid "" @@ -560,6 +574,14 @@ msgid "" "``unsafe_hash``, and ``frozen`` have the same meaning as they do in :func:" "`dataclass`." msgstr "" +"Crea una nueva clase de datos con el nombre ``cls_name``, con los campos " +"definidos en ``fields``, con las clases base dadas en ``bases`` e " +"inicializada con el espacio de nombres dado en ``namespace``. ``fields`` es " +"un iterable que cumple con una de estas formas: ``name``, ``(name, type)`` o " +"``(name, type, Field)``. Si solo ``name`` es proporcionado, ``typing.Any`` " +"es usado para ``type``. Los valores ``init``, ``repr``, ``eq``, ``order``, " +"``unsafe_hash`` y ``frozen`` tienen el mismo significado que en la función :" +"func:`dataclass`." #: ../Doc/library/dataclasses.rst:337 msgid "" @@ -568,10 +590,14 @@ msgid "" "`dataclass` function to convert that class to a dataclass. This function is " "provided as a convenience. For example::" msgstr "" +"Esta función no es estrictamente necesaria debido a que cualquier mecanismo " +"de Python para crear una nueva clase con ``__annotations__`` puede usar la " +"función :func:`dataclass` para convertir esa clase en una clase de datos. " +"Esta función se proporciona simplemente por comodidad. Por ejemplo::" #: ../Doc/library/dataclasses.rst:349 msgid "Is equivalent to::" -msgstr "" +msgstr "Es equivalente a::" #: ../Doc/library/dataclasses.rst:362 msgid "" @@ -580,6 +606,11 @@ msgid "" "`TypeError`. If values in ``changes`` do not specify fields, raises :exc:" "`TypeError`." msgstr "" +"Crea un nuevo objeto del mismo tipo que ``instance``, reemplazando los " +"campos correspondientes con los valores de ``changes``. Si ``instance`` no " +"es una clase de datos se lanza una excepción :exc:`TypeError`. Si los " +"valores en ``changes`` no especifican campos, también se lanza una " +"excepción :exc:`TypeError`." #: ../Doc/library/dataclasses.rst:367 msgid "" @@ -587,6 +618,9 @@ msgid "" "of the dataclass. This ensures that :meth:`__post_init__`, if present, is " "also called." msgstr "" +"El objeto recién retornado es creado llamando al método :meth:`__init__` de " +"la clase de datos. Esto asegura que :meth:`__post_init__`, si existe, " +"también será llamado." #: ../Doc/library/dataclasses.rst:371 msgid "" @@ -594,12 +628,17 @@ msgid "" "on the call to :func:`replace` so that they can be passed to :meth:" "`__init__` and :meth:`__post_init__`." msgstr "" +"Las variables de solo inicialización sin valores predeterminados, si " +"existen, deben especificarse en la llamada a :func:`replace` para que puedan " +"pasarse a :meth:`__init__` y :meth:`__post_init__`." #: ../Doc/library/dataclasses.rst:375 msgid "" "It is an error for ``changes`` to contain any fields that are defined as " "having ``init=False``. A :exc:`ValueError` will be raised in this case." msgstr "" +"Es un error que ``changes`` contenga cualquier campo que esté definido como " +"``init=False``. Una excepción :exc:`ValueError` se lanzará en este caso." #: ../Doc/library/dataclasses.rst:379 msgid "" @@ -611,12 +650,21 @@ msgid "" "perhaps a custom ``replace()`` (or similarly named) method which handles " "instance copying." msgstr "" +"Tenga en cuenta cómo funcionan los campos ``init=False`` durante una llamada " +"a :func:`replace`. No se copian del objeto de origen, sino que, de " +"inicializarse, lo hacen en :meth:`__post_init__`. Se espera que los campos " +"``init=False`` se utilicen en contadas ocasiones y con prudencia. Si se " +"utilizan, podría ser conveniente tener constructores de clase alternativos, " +"o quizás un método personalizado ``replace()`` (o con un nombre similar) que " +"maneje la copia de instancias." #: ../Doc/library/dataclasses.rst:390 msgid "" "Return ``True`` if its parameter is a dataclass or an instance of one, " "otherwise return ``False``." msgstr "" +"Retorna ``True`` si su parámetro es una clase de datos o una instancia de " +"una, en caso contrario retorna ``False``." #: ../Doc/library/dataclasses.rst:393 msgid "" @@ -624,10 +672,13 @@ msgid "" "dataclass itself), then add a further check for ``not isinstance(obj, " "type)``::" msgstr "" +"Si se necesita conocer si una clase es una instancia de *dataclass* (y no " +"una clase de datos en si misma), se debe agregar una verificación adicional " +"para ``not isinstance(obj, type)``::" #: ../Doc/library/dataclasses.rst:401 msgid "Post-init processing" -msgstr "" +msgstr "Procesamiento posterior a la inicialización" #: ../Doc/library/dataclasses.rst:403 msgid "" @@ -638,12 +689,21 @@ msgid "" "order they were defined in the class. If no :meth:`__init__` method is " "generated, then :meth:`__post_init__` will not automatically be called." msgstr "" +"El código del método generado :meth:`__init__` llamará a un método llamado :" +"meth:`__post_init__`, si :meth:`__post_init__` está definido en la clase. " +"Normalmente se llamará como ``self.__post_init__()``. Sin embargo, si se " +"define algún campo ``InitVar``, también se pasarán a :meth:`__post_init__` " +"en el orden en que se definieron en la clase. Si no se genera el método :" +"meth:`__init__`, entonces :meth:`__post_init__` no se llamará " +"automáticamente." #: ../Doc/library/dataclasses.rst:411 msgid "" "Among other uses, this allows for initializing field values that depend on " "one or more other fields. For example::" msgstr "" +"Entre otros usos, esto permite inicializar valores de campo que dependen de " +"uno o más campos. Por ejemplo::" #: ../Doc/library/dataclasses.rst:423 msgid "" @@ -651,10 +711,14 @@ msgid "" "meth:`__post_init__`. Also see the warning about how :func:`replace` " "handles ``init=False`` fields." msgstr "" +"Consulta la sección sobre variables de solo inicialización que hay a " +"continuación para conocer las posibles formas de pasar parámetros a :meth:" +"`__post_init__`. También vea la advertencia sobre cómo :func:`replace` " +"maneja los campos ``init = False``." #: ../Doc/library/dataclasses.rst:428 msgid "Class variables" -msgstr "" +msgstr "Variables de clase" #: ../Doc/library/dataclasses.rst:430 msgid "" @@ -665,10 +729,17 @@ msgid "" "as a field and is ignored by the dataclass mechanisms. Such ``ClassVar`` " "pseudo-fields are not returned by the module-level :func:`fields` function." msgstr "" +"Uno de los dos casos donde :func:`dataclass` realmente inspecciona el tipo " +"de un campo, es para determinar si dicho campo es una variable de clase como " +"se define en :pep:`526`. Lo hace comprobando si el tipo del campo es " +"``typing.ClassVar``. Si un campo es una ``ClassVar``, se deja de considerar " +"como campo y los mecanismos de las clases de datos lo ignoran. Tales " +"pseudocampos ``ClassVar`` no son retornados por la función del módulo :func:" +"`fields`." #: ../Doc/library/dataclasses.rst:439 msgid "Init-only variables" -msgstr "" +msgstr "Variable de solo inicialización" #: ../Doc/library/dataclasses.rst:441 msgid "" @@ -681,22 +752,35 @@ msgid "" "generated :meth:`__init__` method, and are passed to the optional :meth:" "`__post_init__` method. They are not otherwise used by dataclasses." msgstr "" +"El otro caso donde :func:`dataclass` inspecciona una anotación de tipo es " +"para determinar si un campo es una variable de solo inicialización. Lo hace " +"comprobando si el tipo de un campo es ``dataclasses.InitVar``. Si un campo " +"es un ``InitVar``, se considera un pseudocampo llamado 'campo de solo " +"inicialización'. Como no es un campo verdadero, no es retornado por la " +"función del módulo :func:`fields`. Los campos de solo inicialización se " +"agregan como parámetros al método generado :meth:`__init__` y se pasan al " +"método opcional :meth:`__post_init__`. No son utilizados de otra manera por " +"las clases de datos." #: ../Doc/library/dataclasses.rst:451 msgid "" "For example, suppose a field will be initialized from a database, if a value " "is not provided when creating the class::" msgstr "" +"Por ejemplo, supongamos que se va a inicializar un campo desde una base de " +"datos, de no proporcionarse un valor al crear la clase::" #: ../Doc/library/dataclasses.rst:466 msgid "" "In this case, :func:`fields` will return :class:`Field` objects for ``i`` " "and ``j``, but not for ``database``." msgstr "" +"En este caso, :func:`fields` retornará objetos :class:`Field` para ``i`` y " +"``j``, pero no para ``database``." #: ../Doc/library/dataclasses.rst:470 msgid "Frozen instances" -msgstr "" +msgstr "Instancias congeladas" #: ../Doc/library/dataclasses.rst:472 msgid "" @@ -706,6 +790,11 @@ msgid "" "meth:`__delattr__` methods to the class. These methods will raise a :exc:" "`FrozenInstanceError` when invoked." msgstr "" +"No es posible crear objetos verdaderamente inmutables en Python. Sin " +"embargo, se puede emular la inmutabilidad pasando ``frozen=True`` al " +"decorador :meth:`dataclass`. En este caso, las clases de datos añadirán los " +"métodos :meth:`__setattr__` y :meth:`__delattr__` a la clase. Estos métodos " +"lanzarán una excepción :exc:`FrozenInstanceError` cuando sean llamados." #: ../Doc/library/dataclasses.rst:478 msgid "" @@ -713,10 +802,13 @@ msgid "" "`__init__` cannot use simple assignment to initialize fields, and must use :" "meth:`object.__setattr__`." msgstr "" +"Hay una pequeña penalización de rendimiento cuando se usa ``frozen=True``, " +"esto se debe a que :meth:`__init__` no puede usar una asignación simple para " +"inicializar campos, viéndose obligado a usar :meth:`object.__setattr__`." #: ../Doc/library/dataclasses.rst:483 msgid "Inheritance" -msgstr "" +msgstr "Herencia" #: ../Doc/library/dataclasses.rst:485 msgid "" @@ -729,20 +821,30 @@ msgid "" "ordered mapping of fields. Because the fields are in insertion order, " "derived classes override base classes. An example::" msgstr "" +"Cuando la clase de datos está siendo creada por el decorador :meth:" +"`dataclass`, revisa todas las clases base de la clase en el MRO invertido " +"(es decir, comenzando en :class:`object`) y, para cada clase de datos que " +"encuentra, agrega los campos de esa clase base a un mapeo ordenado. Después " +"de agregar todos los campos de la clase base, agrega sus propios campos al " +"mapeo. Todos los métodos generados utilizarán este mapeo ordenado calculado " +"combinando los campos. Como los campos están en orden de inserción, las " +"clases derivadas anulan las clases base. Un ejemplo::" #: ../Doc/library/dataclasses.rst:505 msgid "" "The final list of fields is, in order, ``x``, ``y``, ``z``. The final type " "of ``x`` is ``int``, as specified in class ``C``." msgstr "" +"La lista final de campos es, en orden, ``x``, ``y``, ``z``. El tipo final de " +"``x`` es ``int``, como se especifica en la clase ``C``." #: ../Doc/library/dataclasses.rst:508 msgid "The generated :meth:`__init__` method for ``C`` will look like::" -msgstr "" +msgstr "El método :meth:`__init__` generado para ``C`` se verá como::" #: ../Doc/library/dataclasses.rst:513 msgid "Default factory functions" -msgstr "" +msgstr "Funciones fábrica por defecto" #: ../Doc/library/dataclasses.rst:515 msgid "" @@ -750,6 +852,9 @@ msgid "" "arguments when a default value for the field is needed. For example, to " "create a new instance of a list, use::" msgstr "" +"Si un :func:`field` especifica una ``default_factory``, se llama sin " +"argumentos cuando se necesita un valor predeterminado para el campo. Por " +"ejemplo, para crear una nueva instancia de una lista, debe usarse::" #: ../Doc/library/dataclasses.rst:521 msgid "" @@ -758,30 +863,39 @@ msgid "" "will always be called from the generated :meth:`__init__` function. This " "happens because there is no other way to give the field an initial value." msgstr "" +"Si un campo está excluido de :meth:`__init__` (usando ``init = False``) y el " +"campo también especifica ``default_factory``, entonces la función de fábrica " +"predeterminada siempre se llamará desde la función generada :meth:" +"`__init__`. Esto sucede porque no existe otra forma de darle al campo un " +"valor inicial." #: ../Doc/library/dataclasses.rst:528 msgid "Mutable default values" -msgstr "" +msgstr "Valores por defecto mutables" #: ../Doc/library/dataclasses.rst:530 msgid "" "Python stores default member variable values in class attributes. Consider " "this example, not using dataclasses::" msgstr "" +"Python almacena los valores miembros por defecto en atributos de clase. " +"Considera este ejemplo, sin usar clases de datos::" #: ../Doc/library/dataclasses.rst:545 msgid "" "Note that the two instances of class ``C`` share the same class variable " "``x``, as expected." msgstr "" +"Tenga en cuenta que, tal como cabe esperar, las dos instancias de la clase " +"``C`` comparten la misma variable de clase ``x``." #: ../Doc/library/dataclasses.rst:548 msgid "Using dataclasses, *if* this code was valid::" -msgstr "" +msgstr "Usando clases de datos, *si* este código fuera válido:" #: ../Doc/library/dataclasses.rst:556 msgid "it would generate code similar to::" -msgstr "" +msgstr "generaría un código similar a::" #: ../Doc/library/dataclasses.rst:567 msgid "" @@ -794,19 +908,34 @@ msgid "" "a default parameter of type ``list``, ``dict``, or ``set``. This is a " "partial solution, but it does protect against many common errors." msgstr "" +"Este tiene el mismo problema que el ejemplo original usando la clase ``C``. " +"Es decir, dos instancias de la clase ``D`` que no especifican un valor para " +"``x``, al crear una instancia de la clase, compartirán la misma copia de " +"``x``. Debido a que las clases de datos usan simplemente el mecanismo normal " +"de creación de clases de Python, también comparten este comportamiento. No " +"existe una forma genérica de que las clases de datos detecten esta " +"condición. En su lugar, las clases de datos generarán una excepción :exc:" +"`TypeError` si detectan un parámetro predeterminado de tipo ``list``, " +"``dict`` o ``set`` (contenedores incorporados mutables). Esta es una " +"solución parcial, pero protege contra muchos de los errores más comunes." #: ../Doc/library/dataclasses.rst:577 msgid "" "Using default factory functions is a way to create new instances of mutable " "types as default values for fields::" msgstr "" +"Usar las funciones fábrica por defecto es una forma de crear nuevas " +"instancias de tipos mutables como valores por defecto para campos::" #: ../Doc/library/dataclasses.rst:587 msgid "Exceptions" -msgstr "" +msgstr "Excepciones" #: ../Doc/library/dataclasses.rst:591 msgid "" "Raised when an implicitly defined :meth:`__setattr__` or :meth:`__delattr__` " "is called on a dataclass which was defined with ``frozen=True``." msgstr "" +"Es lanzada cuando un método :meth:`__setattr__` o :meth:`__delattr__` " +"definido implícitamente es llamado en una clase de datos que ha sido " +"definida con ``frozen=True``."