Running `get_dynamic_class_hook()` after `get_class_decorator_hook_2()`
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 20.6k
- Fork
- 3.3k
- Metriche di merge delle PR
- Metriche PR in attesa
Descrizione
Feature
It would be useful to run get_dynamic_class_hook() from plugins after get_class_decorator_hook_2() to support dynamic classes that inspect existing dataclasses / attrs classes.
Pitch
We have an internal mypy plugin that makes "partial" classes, where all required attributes are optional. It does this by examining the __init__ of an attrs class and creating a new __init__ for the new class where all args are now optional. This works in mypy 0.942, occasionally crashes in 0.950, and doesn't work at all in 0.960 (128661ccbf4396ed1538421c481f1773c7490169) because the attrs __init__ is not present during get_dynamic_class_hook().
Is there some way to work around this?
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia tracciando i punti di ingresso del plugin get_dynamic_class_hook() e get_class_decorator_hook_2() e il modo in cui l'ordine degli hook espone i metodi init generati da attrs. La modifica è completa quando gli hook delle classi dinamiche possono ispezionare dataclasses o classi attrs esistenti dopo l'elaborazione dei decoratori, con copertura di regressione per lo scenario del plugin partial-class descritto qui.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- compilers
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100