python / python/mypy

stubtest false positive when `__class_getitem__` is implemented in class body and corresponding body in stub is generic

Aperta
#21,253 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

bug
Lingua principale
Python
Stelle
20.6k
Fork
3.3k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

To Reproduce

In _mypy/_1.py:

class spam:
    def __class_getitem__(cls, _, /): return cls

In _mypy/_1.pyi:

class spam[T]: ...

Expected Behavior

Stubtest should not report any errors. The class is implemented to be generic since a __class_getitem__ method is provided, and type-checked to be generic from the type parameter syntax.

Actual Behavior

error: _mypy._1.spam.__class_getitem__ is not present in stub
Stub: in file /_mypy/_1.pyi
MISSING
Runtime: in file /_mypy/_1.py:2
def (_, /)

Your Environment

  • Mypy version used: 1.20.0
  • Command used: python -m mypy.stubtest _mypy
  • Python version used: 3.14

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 con la riproduzione in _mypy/_1.py e _mypy/_1.pyi ed esegui python -m mypy.stubtest _mypy. Traccia il modo in cui stubtest confronta class_getitem con una classe generica dichiarata usando la sintassi dei parametri di tipo; il lavoro è completato quando il comando non segnala alcun errore di membro mancante per questo caso.

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

Valutazione

Stack tecnologico
python
Ambito
testing-qa
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Specificata chiaramente
Idoneità per principianti
58/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.