Type annotations for boto3 AutoScaling
mypy-boto3-autoscaling provides comprehensive type annotations (stubs) for the boto3 AutoScaling service. It enables static type checking for your boto3 code using tools like mypy, catching potential errors at development time. The current version is 1.42.79, and it's part of the frequently updated mypy-boto3-builder ecosystem, with releases typically aligning with new boto3/botocore versions.
Warnings
- breaking Python 3.8 is no longer supported. Releases of `mypy-boto3-builder` version 8.12.0 and later (which this package relies on) removed support for Python 3.8.
- breaking Specific TypeDef names used in method arguments or for conflicting types were changed for brevity and consistency. For example, `CreateDistributionRequestRequestTypeDef` became `CreateDistributionRequestTypeDef` and `CreateDistributionExtraRequestTypeDef` became `CreateDistributionRequestExtraTypeDef`.
- gotcha While `mypy-boto3-autoscaling` lists `botocore` as a dependency, it only provides type stubs. You still need to install `boto3` (which includes `botocore`) separately for the actual runtime functionality of the AWS SDK. The stub package does not provide the SDK implementation.
- gotcha Using mismatched versions of `mypy-boto3-autoscaling` and `boto3` (or `botocore`) can lead to incorrect type hints or runtime errors. The stub package is generated against a specific version of `boto3`'s API.
Install
-
pip install mypy-boto3-autoscaling boto3
Imports
- AutoScalingClient
from mypy_boto3_autoscaling.client import AutoScalingClient
- DescribeAutoScalingGroupsResponseTypeDef
from mypy_boto3_autoscaling.type_defs import DescribeAutoScalingGroupsResponseTypeDef
Quickstart
import boto3
from mypy_boto3_autoscaling.client import AutoScalingClient
from mypy_boto3_autoscaling.type_defs import DescribeAutoScalingGroupsResponseTypeDef
import os
# Ensure boto3 is configured, e.g., via AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION
# or AWS CLI config files.
# Using os.environ.get for demonstration purposes, actual credentials should be handled securely.
# Instantiate the AutoScaling client with type hints
client: AutoScalingClient = boto3.client("autoscaling", region_name=os.environ.get('AWS_REGION', 'us-east-1'))
try:
# Call a method and apply type hints for the response
response: DescribeAutoScalingGroupsResponseTypeDef = client.describe_auto_scaling_groups()
print(f"Found {len(response['AutoScalingGroups'])} Auto Scaling Groups:")
for group in response['AutoScalingGroups']:
print(f" - {group['AutoScalingGroupName']} (Min: {group['MinSize']}, Max: {group['MaxSize']})")
except Exception as e:
print(f"An error occurred: {e}")