[stubgen] C++ signature in docstring falsely included in generated stubs
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
Bug Report
When C/C++ signatures are included in the C modules docstring. It is parsed as an overload.
To Reproduce
This script for examples outputs 2 signatures:
import mypy.stubdoc
sigs = mypy.stubdoc.infer_sig_from_docstring(
"""
addLane(data: MyStruct) -> None
C++: addLane(const MyStruct data) --> void
""",
"addLane",
)
if sigs is not None:
for sig in sigs:
print(sig)
Expected Behavior
There should only be one signature in the resulting stub.
Actual Behavior
there are two signatures produced
FunctionSig(name='addLane', args=[ArgSig(name='data', type='MyStruct', default=False)], ret_type='None')
FunctionSig(name='addLane', args=[ArgSig(name='constMyStructdata', type=None, default=False)], ret_type='void')
Your Environment
- stubgen version: 1.13.0
- Python version used: 3.12
I have a pull request to solve this, https://github.com/python/mypy/pull/17658
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 con mypy.stubdoc.infer_sig_from_docstring e riproduci il problema usando lo script nel report. Esamina la pull request #17658 per il lavoro già esistente e i test correlati di parsing di stubdoc. Il lavoro è completato quando la riga in stile C++ non viene emessa come seconda firma, mentre la firma Python rimane.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- tooling
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 25/100