MagicStack / MagicStack/asyncpg

Value yielded by PoolAcquireContext is mistyped by IDEs

Ouverte
#685 1 commentaire 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
8.1k
Forks
469
Merge moyen
18 min
PR mergées (30 j)
4

Description

  • 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.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

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.

Piste de recherche

Commencez par les définitions de type de PoolAcquireContext et reproduisez l’exemple pool.acquire() dans PyCharm afin d’inspecter le type inféré de conn. Comparez les annotations de connection et pool avec le type asyncpg.Connection attendu indiqué, tout en vérifiant la réserve de compatibilité avec Python 3.4. Le travail est terminé lorsque l’IDE infère correctement conn sans supprimer la compatibilité prise en charge.

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

Évaluation

Stack technique
postgresql, python
Domaine
databases
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

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