yt-dlp: incorrect visibility on parameters

Aberta Para iniciantes
#16,331 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
76/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
python
Domínio
tooling

Direção de pesquisa

Comece pelo stub do yt-dlp para o ponto de entrada YoutubeDL, especialmente pela anotação do parâmetro de init e pela definição de _Params. Verifique como o tipo do parâmetro é exposto e como um dict normal é inferido por um verificador de tipos. A tarefa estará concluída quando o dicionário de opções de exemplo for aceito sem o erro de tipo de argumento relatado.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

_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]
Linguagem predominante
Python
Estrelas
5.1k
Forks
2.1k
Merge médio
1d 19h
PRs com merge (30d)
82

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de python/typeshed

Todas as issues de python/typeshed

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.