python / python/mypy

Decide what to do with get_additional_deps() plugin hook

Aperta
#21,323 10 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

parallel checking topic-plugins
Lingua principale
Python
Stelle
20.6k
Fork
3.3k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

This hook is called in the coordinator with the parsed tree, but we don't want to deserialize trees in coordinator. It is currently used by mypyc, but it only accesses fullname on it. I recently recommended his hook in https://github.com/python/mypy/issues/17410 so it may be used by some plugins.

This hook is also used by the old NumPy plugin (in a somewhat controversial way). However, it looks like it can be fixed (in the sense that it will not immediately crash) by simply doing tree.defs = tree.imports.copy() before calling the hook.

I propose to make something like this documented behavior: i.e. explicitly say in the docs that the hook will be given partially parsed tree where only imports are available, the caller may then add extra dependencies judging from those imports.

It would be unfortunate to break plugins, but I don't see other options yet.

cc @JukkaL

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia esaminando la chiamata del coordinatore a get_additional_deps() e i suoi attuali utilizzatori in mypyc e nel vecchio plugin NumPy. Determina se l’hook debba ricevere un albero parzialmente analizzato con gli import disponibili e documenta il comportamento deciso e le implicazioni di compatibilità per i plugin.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
devtools
Tipo di issue
Documentazione
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Tranquilla
Chiarezza
Da chiarire
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.