Feature request: Provide a type constructor that derives a Protocol from another type
Abierto
Nadie ha tomado este issue todavía.
feature
priority-1-normal
topic-protocols
- Lenguaje dominante
- Python
- Estrellas
- 20.6k
- Forks
- 3.3k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
Please provide more information to help us understand the issue:
class Foo:
num: int = 1
msg: str = "hello"
FooProtocol = protocol(Foo, include_private=False)
FooLookalike = NamedTuple("FooLookalike", [("num", int), ("msg", str)])
# ok
maybe_foo: FooProtocol = FooLookalike(num=2, msg="bye")
# ok
maybe_foo = Foo()
# safely cast when using Fakes in a test
test_foo(cast(Foo, maybe_foo))
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
El issue proporciona un ejemplo en Python para derivar un Protocol de Foo y comprobar instancias de FooLookalike y Foo contra él. No se nombran archivos, pruebas ni puntos de entrada, así que primero localiza el manejo existente de Protocol y de los constructores de tipos; se considera hecho cuando las asignaciones mostradas pasan el type-check y el ejemplo de cast sigue siendo seguro.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- devtools
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 25/100