Wenn Sie ein AWS-basiertes Programm in Python erstellen, sind Sie mit ziemlicher Sicherheit dem AWS SDK namens boto3 verpflichtet.
Dieser Boto3 verfügt über viele Funktionen, die alle AWS-Services betreffen können, aber ich höre keine Code-Vervollständigung, da es keinen Typ gibt. Da der Dienstname als Zeichenfolge wie "boto3.client (" s3 ")" empfangen wird, ist die Typdefinition der Typ "BaseClient" und nicht der Clienttyp für jeden Dienst. Das ist ziemlich schwierig, weil ich es normalerweise in einer Umgebung entwickle, in der Komplemente schwer angehört werden.
Ich fragte mich, ob etwas getan werden könnte, und als ich danach suchte, fand ich ein Paket namens ** boto3-stubs **. In diesem wird der Typ der Client-Ressource für jeden Dienst wie s3 und ec2 definiert. Wenn Sie also diesen Typ angeben, ...
Sie können es so ergänzen! Das ist gut! !!
pip install boto3-stubs[essential]
Die Version kann mit boto3 kombiniert werden. Selbst wenn Sie ein bestimmtes boto3 verwenden, können Sie es problemlos verwenden, wenn Sie dieselbe Versionsnummer angeben. Das Paket wird automatisch aktualisiert und es scheint, dass boto3-stubs auch an dem Tag veröffentlicht wurden, an dem boto3 aktualisiert wurde.
Die obige Spezifikation enthält die Klassen "ec2, s3, rds, lambda, sqs, dynamo, cloudformation". Dies allein erfordert ungefähr 7 MB, so dass es nicht plötzlich für alle passt. Wenn Sie etwas anderes benötigen, können Sie es in Form von "[essential, ecs]" angeben.
import boto3
from mypy_boto3_s3 import S3Client, S3ServiceResource # from boto3-stubs
s3: S3Client = boto3.client("s3")
s3_r: S3ServiceResource = boto3.resource("s3")
Jetzt hören Sie die Code-Vervollständigung für die Variablen s3
, s3_r
. Da wir den Typ angeben, kann jeder Editor, der eine typbasierte Vervollständigung ausführen kann, wie z. B. VSCode, auf dieselbe Weise verwendet werden.
Recommended Posts