MagicStack / MagicStack/asyncpg

Value yielded by PoolAcquireContext is mistyped by IDEs

Aberta
#685 1 comentário 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Linguagem predominante
Python
Estrelas
8.1k
Forks
468
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

  • asyncpg version: 0.21.0
  • PostgreSQL version: 12.5
  • Do you use a PostgreSQL SaaS? If so, which? Can you reproduce
    the issue with a local PostgreSQL install?
    : No
  • Python version: 3.9.1
  • Platform: Windows 10
  • Do you use pgbouncer?: No
  • Did you install asyncpg with pip?: Yes
  • If you built asyncpg locally, which version of Cython did you use?: N/A
  • Can the issue be reproduced under both asyncio and
    uvloop?
    : N/A

Using PyCharm Professional 2020.2 by JetBrains, the typing of conn is interpreted incorrectly in the following expression:

pool = await asyncpg.create_pool('postgres://...')
async with pool.acquire() as conn:
    await conn.execute(...)

Expected: asyncpg.Connection
Observed: typing.Any
Suggested remedy: Explicitly type PoolAcquireContext.connection as typing.Optional[Connection] and/or explicitly type PoolAcquireContext.pool as Pool.
Caveat: The suggestions above will break compatibility with Python 3.4, which reached end of life in March 2019.

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

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.

Direção de pesquisa

Comece pelas definições de tipo de PoolAcquireContext e reproduza o exemplo pool.acquire() no PyCharm para inspecionar o tipo inferido de conn. Compare as anotações de connection e pool com o tipo esperado declarado asyncpg.Connection, verificando também a ressalva de compatibilidade com Python 3.4. Considera-se concluído quando a IDE infere conn corretamente sem deixar de oferecer a compatibilidade suportada.

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

Avaliação

Stack de tecnologia
postgresql, python
Domínio
databases
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
38/100

Receba novas issues na sua caixa de entrada

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