Provide the full parsed config file to each plugin
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 20.6k
- Forks
- 3.3k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Feature
Provide the full parsed config file to each plugin
Pitch
Currently, Mypy plugins are passed only the Options object in their constructor, which captures Mypy options but not Mypy plugin options. Consequently, each plugins has to re-parse the file. This is a waste of time, may add to the necessary dependencies for a plugin with configuration, and requires re-implementing the logic for parsing different file types (TOML vs config). Here's an example of the pydantic plugin doing just this:
The neatest solution would be to pass the full config object to the constructor. Unfortunately, this would be a breaking change to the constructor signature, so probably the more palatable option would be to store the config options within each Plugin instance (in the constructor), which the subclasses can use if they want:
class SomeMypyPlugin(Plugin):
def __init__(self, options: Options) -> None:
super().__init__(options)
my_config_option = self.raw_config["tools"]["some_mypy_plugin"]
# use my_config_option
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par le constructeur de Plugin et le chemin de chargement de la configuration, puis comparez l’exemple de plugin pydantic lié dans l’issue. Suivez la manière dont Options et la configuration du plugin sont actuellement analysés, et définissez l’achèvement comme le fait de rendre toute la configuration analysée disponible pour les instances du plugin, sans que chaque plugin ait à analyser à nouveau des fichiers TOML ou de configuration.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100