Docment renderers collapse parameterized annotations to their unparameterized type
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 74/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
- Ambito
- documentation
Direzione di ricerca
Inizia in fastcore.docments da _maybe_nm() e traccia il modo in cui DocmentText, DocmentList e DocmentTbl formattano le annotazioni per sig2str. Esegui la riproduzione fornita con list[str] e tuple[str, int], quindi verifica che i parametri generici vengano preservati, mentre le classi ordinarie e i valori predefiniti mantengano la formattazione esistente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Docment-based signature rendering loses type parameters from generic annotations.
For example, list[str] is rendered as list, and tuple[str, int] is rendered as tuple.
Reproduction
from fastcore.docments import sig2str
def f(
items:list[str],
) -> tuple[str, int]:
pass
print(sig2str(f))
Actual output:
def f(
items:list
)->tuple:
Expected output:
def f(
items:list[str]
)->tuple[str,int]:
Environment
- fastcore: 2.2.13
- Branch:
main
Scope
The issue affects multiple docment renderers, including:
DocmentTextDocmentListDocmentTbl
Likely cause
The renderers use _maybe_nm() for annotations:
def _maybe_nm(o):
if o == inspect._empty: return ''
return o.__name__ if hasattr(o, '__name__') else str(o)
Parameterized generic aliases expose the unparameterized origin through __name__:
tuple[str, int].__name__
# 'tuple'
By comparison, annotation-aware formatting preserves the parameters:
inspect.formatannotation(tuple[str, int])
# 'tuple[str, int]'
Annotation formatting should preserve generic parameters without changing the existing formatting of ordinary classes or default values.
- Lingua principale
- Jupyter Notebook
- Stelle
- 1.1k
- Fork
- 295
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi 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.
Altre issue di AnswerDotAI/fastcore
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
AnswerDotAI/fastcore#933 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
AnswerDotAI/fastcore#930 ·
-
`MarkdownRenderer.__repr__` places the docstring inside a return-docment commentForse già presa @civvic l’ha presa 61 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
AnswerDotAI/fastcore#911 ·
-
`docments(full=True)` drops `**kwargs` docments unless `args_kwargs=True` is passed explicitlyForse già presa @civvic l’ha presa 61 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
AnswerDotAI/fastcore#909 ·
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 86/100
AnswerDotAI/fastcore#829 ·
Tutte le issue di AnswerDotAI/fastcore
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
aws-samples/sample-per-model-bedrock#191 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Documentation problemAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 66/100
monero-project/monero-docs#430 · 3 commenti ·
I maintainer di solito rispondono entro 6 giorni
-
Documentation Link TypoAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 83/100
Zettlr/Zettlr#6610 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 67/100
navikt/esyfo-narmesteleder#700 ·
I maintainer di solito rispondono entro 1 giorno