python / python/mypy

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

Ouverte
#5,406 6 commentaires 10 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

feature priority-1-normal topic-attrs
Langage dominant
Python
Étoiles
20.6k
Forks
3.3k
Métriques de merge des PR
Métriques de PR en attente

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par mypy/plugins/attrs.py, en particulier par les fonctions de la bibliothèque principale listées autour des lignes 24–37, et suivez la manière dont le plugin attrs reconnaît @attr.s, @attr.ib et @attr.dataclass. Consultez l’issue attrs liée pour comprendre le cas d’utilisation motivant concernant les wrappers. Le travail est terminé lorsqu’il existe un moyen documenté et testé permettant à des wrappers tiers d’enregistrer un comportement équivalent pour les classes, les dataclasses ou les créateurs d’attributs.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
devtools
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Calme
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.