boto3 のコードを書いていて、普通に s3 = boto3.client("s3") とすると型がついていなくて開発しにくい。

何種類かあるのだが、boto3-stubs が最もメンテがちゃんとされていそう リポジトリ

過去に非公式で存在していたリポジトリをたらい回しにされた結果上にたどり着いた。

インストール

Poetry で使ってみる。

## ec2やs3など主要なサービス用の型定義をインストールする
$ poetry add 'boto3-stubs[essential]'
 
## カンマ区切りで追加することもできる
$ poetry add 'boto3-stubs[essential, cloudwatch]'

使い方

from mypy_boto3_s3.client import S3Client
from mypy_boto3_s3.service_resource import Object
import boto3
 
s3: S3Client = boto3.client("s3")
res = s3.get_object(Bucket="mybucket", Key="mykey/ggg.txt")

Neovim でもLSPでしっかり補完が効いてくれた