yt-dlp: incorrect visibility on parameters

Ouverte Adaptée aux débutants
#16,331 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
76/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
python
Domaine
tooling

Piste de recherche

Commencez par le stub yt-dlp du point d’entrée YoutubeDL, en particulier par l’annotation du paramètre de init et la définition de _Params. Vérifiez comment le type du paramètre est exposé et comment un dict normal est déduit par un vérificateur de types. C’est terminé lorsque le dictionnaire d’options d’exemple est accepté sans l’erreur de type d’argument signalée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

_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]
Langage dominant
Python
Étoiles
5.1k
Forks
2.1k
Merge moyen
1 j 12 h
PR mergées (30 j)
71

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de python/typeshed

Toutes les issues de python/typeshed

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.