python / python/mypy

Allow to register new class/dataclass/attribute makers in attrs plugin

Abierto
#5,406 6 comentarios 10 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

feature priority-1-normal topic-attrs
Lenguaje dominante
Python
Estrellas
20.6k
Forks
3.3k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

This is a feature request.

attrs is very much intended to be composable (e.g. https://github.com/hynek/environ_config) but currently the attrs plugin only works on the core library's functions: https://github.com/python/mypy/blob/b2d61741623f2a0573f2b1bdb8391ceed862cf69/mypy/plugins/attrs.py#L24-L37

I would like to be able to signal somehow to mypy, that some function is a wrapper around @attr.s/@attr.ib/@attr.dataclass. Not only would third-party applications benefit, but I could really use it while experimenting on https://github.com/python-attrs/attrs/issues/408.

Any ideas/plans how we could achieve that?

cc also @euresti & @chadrik

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 con mypy/plugins/attrs.py, especialmente con las funciones de la biblioteca principal enumeradas alrededor de las líneas 24–37, y sigue cómo el plugin de attrs reconoce @attr.s, @attr.ib y @attr.dataclass. Revisa la issue enlazada de attrs para conocer el caso de uso motivador de los wrappers. Se considera terminado cuando exista una forma documentada y probada para que los wrappers de terceros registren un comportamiento equivalente para clases, dataclasses o creadores de atributos.

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
Tranquilo
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.