python / python/mypy

Stubgen generates invalid stubs for code with import chain

Aperta
#6,831 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

needs discussion priority-1-normal topic-stubgen
Lingua principale
Python
Stelle
20.6k
Fork
3.3k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

Encountered many issues while trying to make stubs for TensorFlow (lost cause, I guess, but I had to try). One of the issues is reproduced by the following toy example.

m1.py:

x = 123

m2.py:

from m1 import x
__all__ = []

m3.py:

from m2 import x
__all__ = ['x']

Generated stubs:

m1.pyi

x: int

m2.pyi


m3.pyi

from m2 import x as x

Probably the most 'right' thing to do would be to have m3.pyi say:

from m1 import x as x

But this doesn't seem easy with current stubgen architecture.

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

Riproduci il problema con i moduli giocattolo m1.py, m2.py e m3.py, quindi traccia la gestione degli import e di all da parte di stubgen lungo la catena. Confronta i file m2.pyi e m3.pyi generati con la riesportazione attesa da m1; il lavoro è completo quando gli stub generati preservano il simbolo esportato valido senza produrre un import non valido.

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

Valutazione

Stack tecnologico
python
Ambito
devtools
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.