yt-dlp: incorrect visibility on parameters
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 5.1k
- Fork
- 2.1k
- Merge medio
- 1g 19h
- PR unite (30g)
- 82
Descrizione
_Params should be public. Submitting a normal dict as a file will mismatch with the TypedDict because the type-checker will infer dict[str,bool] instead of _Params. See the example snippet:
def fetch_channel_info(channel: str) -> tuple[str, str, list[str]]:
"""Return (channel_id, channel_handle, video_ids)."""
opts = {"quiet": True, "extract_flat": True}
with yt_dlp.YoutubeDL(opts) as ydl:
info = ydl.extract_info(channel, download=False)
which results in
├╴E Argument of type "dict[str, bool]" cannot be assigned to parameter "params" of type "_Params | None" in function "__init__"
│ Type "dict[str, bool]" is not assignable to type "_Params | None"
│ "dict[str, bool]" is not assignable to "_Params"
│ "dict[str, bool]" is not assignable to "None" basedpyright (reportArgumentType) [48, 27]
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 dallo stub di yt-dlp per l’entry point YoutubeDL, in particolare dall’annotazione del parametro di init e dalla definizione di _Params. Verifica come viene esposto il tipo del parametro e come un dict normale viene dedotto da un type checker. Il lavoro è completato quando il dizionario di opzioni di esempio viene accettato senza l’errore di tipo dell’argomento segnalato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- tooling
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Attiva
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 76/100