es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tag: MYPY

¿Cómo indicar mediante typehinting que un objeto de una clase también se adhiere a un protocolo en Python?

Tengo un conjunto de clases, llamémoslos Foo y Bar, donde ambos heredan de una clase base Father que está definida fuera del alcance actual (no por mí). He definido una clase de protocolo DummyProtocol que tiene una función do_something. class DummyProtocol(Protocol): def do_something(self): … class Foo(Father): def do_something(self): pass class . . . Read more

Typerado de Python: mypy no está contento con os.path.dirname y List.remove()

Tengo esta rutina simple donde quiero eliminar algunos directorios de $PATH: test.py import os import shutil</p> <h1>eliminar babel de PATH</h1> <p>bins = [“babel”, “obabel”] env<em>path = os.environ[“PATH”].split(“:”)[:] for abin in bins: bpath = shutil.which(abin) try: rr = os.path.dirname(bpath) # <- error de mypy except TypeError: rr = None try: env</em>path.remove(rr) . . . Read more

Crear un contenedor de anotaciones de tipo para múltiples variables.

Me gustaría crear un contenedor tipo DataFrame[T, …] que pueda contener varias variables definidas durante la anotación de tipos como el siguiente: UserId = DataFrame[int] #singular o UserIdAndName = DataFrame[int, str] #múltiple Y luego poder utilizar estos tipos en cualquier lugar donde se permitan tipos: def get_name(x: UserId) -> UserIdAndName:. . . . Read more

Tipo de valor de retorno incompatible en el uso genérico de propiedades de Python que devuelve self.

Tratando de implementar una jerarquía de herencia de nodos y árboles que respete “mypy”, tengo las siguientes clases: from __future__ import annotations import dataclasses from typing import Generic, TypeVar, Optional GenericNodeValue = TypeVar(‘GenericNodeValue’) @dataclasses.dataclass class BaseNode(Generic[GenericNodeValue]): value: GenericNodeValue parent: Optional[BaseNode] = None left: Optional[BaseNode] = None right: Optional[BaseNode] = None . . . Read more