[pyar] NamedTuple de tipo generico?

marcos hipe marcoshipe en gmail.com
Jue Ene 4 13:57:40 ART 2018


Dije: "buenísimo, cambio el import y se soluciona todo", pero no, ya estoy
usando el namedtuple de typing
Supongo que habrá que esperar hasta el DataClass que comentas, parece
interesante!!

Gracias por la data!

El 4 de enero de 2018, 13:35, Juan Carlos <juancarlospaco en gmail.com>
escribió:

>
> Hola; Para namedtuple con type:
>
> https://devdocs.io/python~3.6/library/typing#typing.NamedTuple
>
> Es decir al collections.namedtuple no le agradan mucho los type hint.
>
> Pronto viene DataClass https://www.python.org/dev/peps/pep-0557/
>
>
> On Thu, Jan 4, 2018 at 1:11 PM marcos hipe <marcoshipe en gmail.com> wrote:
>
>> Buenas!
>> Estuve indagando en el tema de type hints y me encontré con un problema,
>> quería hacer una NamedTuple que tenga un ítem de un tipo genérico, pero si
>> hago eso me tira el indescifrable error: "TypeError: metaclass conflict:
>> the metaclass of a derived class must be a (non-strict) subclass of the
>> metaclasses of all its bases"
>>
>> Estoy haciendo algo mal?
>>
>> El código que use es:
>>
>> class State(abc.ABC):
>>     pass
>>
>> State_T = TypeVar('State_T', bound=State)
>>
>> class Node(Generic[State_T], NamedTuple):
>>     state: State_T
>>     path: List[str]
>>     cost: int
>>
>> O sea que tengo un Node que tiene un ítem que es de tipo State o derivado.
>> Si, quizás un poco quisquilloso con querer eso, cuando si lo hago con una
>> clase común anda perfecto:
>>
>> class State(abc.ABC):
>>     pass
>>
>> State_T = TypeVar('State_T', bound=State)
>>
>> class Node(Generic[State_T]):
>>     def __init__(self, state: State_T, path: List[str], cost: int):
>>         self.state: State_T = state
>>         self.path: List[str] = path
>>         self.cost: int = cost
>>
>> Ya en mi código lo deje así con una clase común, pero me quede con la
>> duda de si estoy haciendo algo mal o si eso debería andar
>> Saludos!
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180104/bee580ae/attachment.html>


Más información sobre la lista de distribución pyar