[PYTHON] Activer la complétion de code sur boto3 avec boto3-stubs

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

image.png image.png

Vous pourrez le compléter comme ça! C'est bon! !!

Installation

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

Comment utiliser

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.

De côté

Recommended Posts

Activer la complétion de code sur boto3 avec boto3-stubs
Remarques sur l'utilisation de pywinauto
Remarques sur l'utilisation des featuretools
Comment utiliser l'homebrew dans Debian
Utilisez boto3 pour accéder à S3
Comment utiliser mecab, neologd-ipadic sur colab
Je veux utiliser Linux sur mac
Comment utiliser l'Assistant Google sur Windows 10
Mémorandum sur l'utilisation du python gremlin
Installez python sur xserver pour utiliser pip
Utilisez boto pour charger / télécharger des fichiers vers s3.
Utilisez linter pour réduire les coûts de révision du code
Utilisez le mode de traitement des nouvelles tentatives ajouté à Boto3
Un moyen simple d'utiliser Python 2.7 sur Cent OS 6
Comment utiliser Ruby's PyCall pour activer Pyenv Python
[Windows] Mémo pour l'utilisation de Keras sur GPU [Tensorflow-GPU]
Préparation à l'utilisation de aws cli sur Mac OS X
Installez Debian 10 pour utiliser le développement à distance avec Beagle Bone Black
Préparation à l'utilisation de Tensorflow (Anaconda) avec Visual Studio Code
Comment utiliser le contrôleur audio C216 sur Arch Linux
Un mémorandum sur l'utilisation de keras.preprocessing.image de Keras
Pour utiliser TensorFlow sur des GPU inférieurs à Titan
Préparation à l'utilisation d'Ansible sur un serveur Linux existant
Autoencoder dans Chainer (Remarques sur l'utilisation de + trainer)
Je souhaite utiliser OpenJDK 11 avec Ubuntu Linux 18.04 LTS / 18.10
Comment utiliser Django avec Google App Engine / Python
[Astuces] Comment utiliser l'iPhone comme caméra Web sous Linux
Bon code et mauvais code à comparer avec la mini-carte