[pyar] NamedTuple de tipo generico?

Juan Carlos juancarlospaco en gmail.com
Jue Ene 4 13:35:07 ART 2018


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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180104/413e2e96/attachment.html>


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