python / python/cpython

Avoid eagerly evaluating annotations

Abierto
#132,493 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

3.14 stdlib type-bug
Lenguaje dominante
Python
Estrellas
77.2k
Forks
35.9k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

There are various places in the stdlib where we access the .__annotations__ attribute. Under PEP-649 / PEP-749, this now forces evaluation of lazy annotations. We should avoid evaluating annotations where it is not necessary.

For example, currently typing.Protocol evaluates its annotations at protocol creation time.

Linked PRs
  • gh-132494
  • gh-132534
  • gh-132596
  • gh-133411
  • gh-133415
  • gh-133796

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza revisando los PRs enlazados y los lugares de la stdlib que acceden a .__annotations__, tomando typing.Protocol como ejemplo concreto. Usa PEP-649 y PEP-749 para comprender el comportamiento de las anotaciones diferidas; el trabajo estará terminado cuando se evite la evaluación innecesaria de anotaciones, especialmente durante la creación de protocolos.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
backend
Tipo de issue
Refactorización
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
20/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.