Tag: PYTHON-TYPING
He estado intentando mejorar algunas clases de código con sugerencias de tipo. Estoy teniendo problemas con un problema de anidamiento. El parámetro de una función de interés es un contenedor iterable de objetos con tipos conocidos. Me cuesta hacer que mi IDE reconozca los tipos internos (lo cual es una . . . Read more
def decorador( envuelto: Union[ Callable[[], T], Callable[[], Generator[T, None, None]] ] ) -> Callable[[], T]: def envoltura(): valor = envuelto() if inspect.isgenerator(valor): return next(valor) else: return valor return envoltura @decorador def foo() -> Generator[str, None, None]: yield “bar” El código anterior produce el siguiente error en mypy: error: El argumento . . . Read more
Quería darle un nombre a un tipo dict, algo como: MyDictType = Dict[int, SomeClass] Así que descubrí sobre NewType, pero parece que solo acepta tipos en tiempo de ejecución: el código MyDictType = NewType(‘MyDictType’, Dict[int, SomeClass] genera la advertencia Tipo esperado ‘Type[_T]’, se obtuvo ‘_VT’ Entonces, ¿cuál es la forma . . . Read more
El siguiente código funciona como se espera class Foo: pass a1 = Foo a2 = Foo print(a1 == a2) <h1>True</h1> <p><code> ahora, si los genero dinámicamente y los comparo, no funciona </code> def eq(a,b): return str(a) == str(b)</p> <p>t1 = type(“Foo”, (), {“<strong>eq</strong>”: eq}) t2 = type(“Foo”, (), {“<strong>eq</strong>”: eq})</p> . . . Read more
Tengo una clase abstracta llamada ABC que tendrá una variable de instancia, digamos record, en todas sus clases de implementación. Para mejorar la legibilidad, quiero que los lectores sepan que las instancias de esa ABC deben tener una variable de instancia llamada record. Sin embargo, el tipo de record varía . . . Read more