diff --git a/TRANSLATORS b/TRANSLATORS index c28febd7fa..8c0a0a6ddb 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -12,6 +12,7 @@ Javier Daza (@javierdaza) Juan Diego Alfonso Ocampo (@halcolo) Sergio Delgado Quintero (@sdelquin) Nicolás Demarchi (@gilgamezh) +Ignacio Dopazo (@ignaciodopazo) Nahuel Espinosa (@nahueespinosa) Xavi Francisco (@srxavi) Manuel Kaufmann (@humitos) diff --git a/library/dataclasses.po b/library/dataclasses.po index 7387752525..8a18c2845a 100644 --- a/library/dataclasses.po +++ b/library/dataclasses.po @@ -6,23 +6,25 @@ # Check https://github.com/PyCampES/python-docs-es/blob/3.8/TRANSLATORS to # get the list of volunteers # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2020-07-03 14:11-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: Ignacio Dopazo \n" +"Language: es_AR\n" +"X-Generator: Poedit 2.3.1\n" #: ../Doc/library/dataclasses.rst:2 msgid ":mod:`dataclasses` --- Data Classes" -msgstr "" +msgstr ":mod:`dataclasses` --- Clases de datos" #: ../Doc/library/dataclasses.rst:10 msgid "**Source code:** :source:`Lib/dataclasses.py`" @@ -35,32 +37,47 @@ 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`." #: ../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 " +"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::" #: ../Doc/library/dataclasses.rst:39 msgid "" "Note that this method is automatically added to the class: it is not " "directly specified in the ``InventoryItem`` definition shown above." msgstr "" +"Es importante observar que este método es añadido a la clase " +"automáticamente; está implícito en la definición de ``InventoryItem`` " +"implementada arriba." #: ../Doc/library/dataclasses.rst:45 msgid "Module-level decorators, classes, and functions" -msgstr "" +msgstr "Decoradores, clases y funciones del módulo" #: ../Doc/library/dataclasses.rst:49 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." #: ../Doc/library/dataclasses.rst:52 msgid "" @@ -69,12 +86,19 @@ 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." #: ../Doc/library/dataclasses.rst:58 msgid "" "The order of the fields in all of the generated methods is the order in " "which they appear in the class definition." msgstr "" +"El orden de los campos en los métodos generados es el mismo en el que se " +"encuentran en la definición de la clase." #: ../Doc/library/dataclasses.rst:61 msgid "" @@ -83,6 +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 devuelve la misma clase que es llamada, no crea una " +"nueva." #: ../Doc/library/dataclasses.rst:67 msgid "" @@ -90,20 +119,25 @@ 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::" #: ../Doc/library/dataclasses.rst:84 msgid "The parameters to :func:`dataclass` are:" -msgstr "" +msgstr "Los parámetros de :func:`dataclass` son:" #: ../Doc/library/dataclasses.rst:86 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." #: ../Doc/library/dataclasses.rst:89 msgid "" "If the class already defines :meth:`__init__`, this parameter is ignored." -msgstr "" +msgstr "Si la clase ya define :meth:`__init__`, este parámetro es ignorado." #: ../Doc/library/dataclasses.rst:92 msgid "" @@ -114,11 +148,17 @@ 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)``." #: ../Doc/library/dataclasses.rst:99 msgid "" "If the class already defines :meth:`__repr__`, this parameter is ignored." -msgstr "" +msgstr "Si la clase ya define :meth:`__repr__`, este parámetro es ignorado." #: ../Doc/library/dataclasses.rst:102 msgid "" @@ -126,10 +166,15 @@ 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. " +"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)." #: ../Doc/library/dataclasses.rst:107 msgid "If the class already defines :meth:`__eq__`, this parameter is ignored." -msgstr "" +msgstr "Si la clase ya define :meth:`__eq__`, este parámetro es ignorado." #: ../Doc/library/dataclasses.rst:110 msgid "" @@ -139,18 +184,29 @@ 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`." #: ../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`." #: ../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:" +"`__hash__` de acuerdo a los valores de ``eq`` y ``frozen`` definidos." #: ../Doc/library/dataclasses.rst:124 msgid "" @@ -161,6 +217,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 " +"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`." #: ../Doc/library/dataclasses.rst:131 msgid "" @@ -170,8 +234,14 @@ 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__`." #: ../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. " @@ -180,6 +250,13 @@ msgid "" "class is logically immutable but can nonetheless be mutated. This is a " "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:" +"`__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." #: ../Doc/library/dataclasses.rst:144 msgid "" @@ -188,6 +265,10 @@ 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`." #: ../Doc/library/dataclasses.rst:149 msgid "" @@ -199,6 +280,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 " +"``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)." #: ../Doc/library/dataclasses.rst:157 msgid "" @@ -207,18 +296,26 @@ msgid "" "`__setattr__` or :meth:`__delattr__` is defined in the class, then :exc:" "`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." #: ../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::" #: ../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::" #: ../Doc/library/dataclasses.rst:175 msgid "" @@ -226,6 +323,9 @@ msgid "" "field with a default value. This is true either when this occurs in a " "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." #: ../Doc/library/dataclasses.rst:181 msgid "" @@ -235,6 +335,11 @@ msgid "" "replace the default field value with a call to the provided :func:`field` " "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::" #: ../Doc/library/dataclasses.rst:194 msgid "" @@ -243,10 +348,15 @@ msgid "" "sentinel is used because ``None`` is a valid value for ``default``. No code " "should directly use the ``MISSING`` value." 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 " +"directamente el valor ``MISSING``." #: ../Doc/library/dataclasses.rst:200 msgid "The parameters to :func:`field` are:" -msgstr "" +msgstr "Los parámetros de :func:`field` son:" #: ../Doc/library/dataclasses.rst:202 msgid "" @@ -254,6 +364,9 @@ msgid "" "This is needed because the :meth:`field` call itself replaces the normal " "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*." #: ../Doc/library/dataclasses.rst:206 msgid "" @@ -263,24 +376,36 @@ msgid "" "discussed below. It is an error to specify both ``default`` and " "``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 " +"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 " +"en un error." #: ../Doc/library/dataclasses.rst:212 msgid "" "``init``: If true (the default), this field is included as a parameter to " "the generated :meth:`__init__` method." msgstr "" +"``init``: Si es verdadero (por defecto), este campo es incluido como " +"parámetro del método :meth:`__init__` generado." #: ../Doc/library/dataclasses.rst:215 msgid "" "``repr``: If true (the default), this field is included in the string " "returned by the generated :meth:`__repr__` method." msgstr "" +"``repr``: Si es verdadero (por defecto), este campo es incluido en la cadena " +"de caracteres que devuelve el método :meth:`__repr__` generado." #: ../Doc/library/dataclasses.rst:218 msgid "" "``compare``: If true (the default), this field is included in the generated " "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." #: ../Doc/library/dataclasses.rst:222 msgid "" @@ -290,6 +415,12 @@ msgid "" "field should be considered in the hash if it's used for comparisons. " "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``." #: ../Doc/library/dataclasses.rst:229 msgid "" @@ -299,8 +430,14 @@ msgid "" "hash value. Even if a field is excluded from the hash, it will still be " "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." #: ../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 " @@ -309,6 +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*." #: ../Doc/library/dataclasses.rst:243 msgid "" @@ -320,12 +463,21 @@ msgid "" "fields, just as if the default value itself were specified. For example, " "after::" msgstr "" +"Si el valor por defecto de un campo es especificado por una llamada a :func:" +"`field()`, los atributos de clase para este campo serán reemplazados por los " +"especificados en el valor ``default``. Si el valor de ``default`` no es " +"provisto, el atributo de clase será eliminado. La idea es que, después que " +"la ejecución del decorador :func:`dataclass`, todos los atributos de la " +"clase contengan los valores por defecto de cada campo, como si fueran " +"definidos uno por uno. Por ejemplo, luego de::" #: ../Doc/library/dataclasses.rst:259 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." #: ../Doc/library/dataclasses.rst:265 msgid "" @@ -334,14 +486,18 @@ msgid "" "method (see below). Users should never instantiate a :class:`Field` object " "directly. Its documented attributes are:" msgstr "" +"Los objetos :class:`Field` describen cada campo definido. Estos objetos son " +"creados implícitamente y son devueltos 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 "" +msgstr "``name``: Nombre del campo." #: ../Doc/library/dataclasses.rst:272 msgid "``type``: The type of the field." -msgstr "" +msgstr "``type``: El tipo del campo." #: ../Doc/library/dataclasses.rst:274 msgid "" @@ -349,12 +505,17 @@ msgid "" "and ``metadata`` have the identical meaning and values as they do in the :" "func:`field` declaration." 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)." #: ../Doc/library/dataclasses.rst:278 msgid "" "Other attributes may exist, but they are private and must not be inspected " "or relied on." msgstr "" +"Pueden existir otros atributos, pero son privados y no deberían ser " +"examinados ni depender de ellos." #: ../Doc/library/dataclasses.rst:283 msgid ""