Si vous créez un programme basé sur AWS en Python, vous serez presque certainement redevable au kit AWS SDK appelé boto3.
Ce boto3 a beaucoup de fonctions qui peuvent toucher tous les services AWS, mais je n'entends pas la complétion de code car il n'y a pas de type. Puisque le nom du service est reçu sous forme de chaîne de caractères telle que boto3.client (" s3 ")
, la définition de type est le type BaseClient
, pas le type de client pour chaque service. C'est assez difficile car je le développe généralement dans un environnement où les compléments sont écoutés avec acharnement.
Je me suis demandé si quelque chose pouvait être fait et recherché, et j'ai trouvé un paquet appelé ** boto3-stubs **. En cela, le type de ressource client pour chaque service tel que s3 et ec2 est défini, donc si vous donnez ce type, ...
Vous pourrez le compléter comme ça! C'est bon! !!
pip install boto3-stubs[essential]
La version est conçue pour être combinée avec boto3, donc même si vous utilisez un boto3 spécifique, vous pouvez l'utiliser sans problème si vous spécifiez le même numéro de version. Le paquet est mis à jour automatiquement, et il semble que boto3-stubs a également été publié le jour de la mise à jour de boto3.
La spécification «[essential]» ci-dessus contiendra les classes «ec2, s3, rds, lambda, sqs, dynamo, cloudformation». Cela seul nécessite environ 7 Mo, il semble donc que cela ne convienne pas à tout le monde. Si vous avez besoin de quelque chose d'autre, vous pouvez le spécifier sous la forme de [essential, ecs]
.
import boto3
from mypy_boto3_s3 import S3Client, S3ServiceResource # from boto3-stubs
s3: S3Client = boto3.client("s3")
s3_r: S3ServiceResource = boto3.resource("s3")
Vous entendrez maintenant l'achèvement du code sur les variables s3
, s3_r
. Puisque nous allons spécifier le type, tout éditeur qui peut effectuer une complétion basée sur le type tel que VSCode peut être utilisé de la même manière.
Recommended Posts