Install & Compatibility
Where this runs
tested against v1.43.29 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.910 runs
installs and imports cleanly · install 0.0s · import 0.000s · 19.8MB
glibcpy 3.10–3.910 runs
installs and imports cleanly · install 3.4s · import 0.000s · 20MB
18MB installed
● package 18MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
FirehoseClient
✓ from mypy_boto3_firehose import FirehoseClient
✗ from mypy_boto3_firehose import FirehoseClient
Demonstrates how to initialize a type-hinted Firehose client and send a record using a `TypedDict` for the request payload, leveraging the provided type annotations. It includes `TYPE_CHECKING` for conditional dependency.
import boto3
import os
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from mypy_boto3_firehose import FirehoseClient
from mypy_boto3_firehose.type_defs import PutRecordInputRequestTypeDef
# Configure AWS credentials (e.g., via environment variables or AWS CLI config)
# For example, ensure AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION_NAME are set.
def send_to_firehose(delivery_stream_name: str, data: str) -> None:
"""Sends data to an AWS Kinesis Firehose delivery stream with type hints."""
# Explicit type annotation for the client (recommended for some IDEs/type checkers)
client: FirehoseClient = boto3.client(
"firehose",
region_name=os.environ.get('AWS_REGION_NAME', 'us-east-1'),
aws_access_key_id=os.environ.get('AWS_ACCESS_KEY_ID', ''),
aws_secret_access_key=os.environ.get('AWS_SECRET_ACCESS_KEY', ''),
)
# Use a TypedDict for the request payload for full type checking
record_data: PutRecordInputRequestTypeDef = {
"DeliveryStreamName": delivery_stream_name,
"Record": {"Data": data.encode('utf-8')},
}
try:
response = client.put_record(**record_data)
print(f"Successfully sent record. RecordId: {response['RecordId']}")
except Exception as e:
print(f"Error sending record to Firehose: {e}")
if __name__ == "__main__":
# Example usage (replace with your actual stream name and data)
firehose_stream = "YourFirehoseDeliveryStreamName"
message = "Hello, Firehose! This is a typed record."
send_to_firehose(firehose_stream, message)
Debug
Known issues
breakingAs of `mypy-boto3-builder` version 8.12.0 (November 8, 2025), Python 3.8 is no longer supported across all `mypy-boto3` packages. Projects must migrate to Python 3.9 or later to receive updates.fixUpgrade your project's Python interpreter to 3.9 or higher. (e.g., `python -m pip install --upgrade python` or update virtual environment/container base image).
affects: mypy-boto3-builder >= 8.12.0
breakingThe `mypy-boto3-builder` (version 8.12.0 onwards) migrated to PEP 561 compliant packages, which might change how type checkers locate and process stubs. This typically means stubs are automatically discovered, but old or custom `mypy` configurations might need adjustments.fixEnsure `mypy` is configured to automatically discover installed packages. If issues arise, check `mypy` documentation on `PEP 561` and installed packages. No manual `MYPYPATH` for stub-only packages is needed if installed via `pip`.
affects: mypy-boto3-builder >= 8.12.0
breakingIn `mypy-boto3-builder` version 8.9.0, there were changes to `TypedDict` naming conventions, including shortening names (e.g., `CreateDistributionRequestRequestTypeDef` to `CreateDistributionRequestTypeDef`) and moving the `Extra` postfix. This can break existing explicit `TypedDict` imports or usages.fixReview and update `TypedDict` import paths and names in your codebase according to the new conventions. Consult the specific service's documentation for the correct generated `TypedDict` names.
affects: mypy-boto3-builder >= 8.9.0
gotchaWhile `mypy-boto3` stubs provide robust type checking, some IDEs (like VSCode) or older `mypy` versions might require explicit type annotations for `boto3.client()` calls to provide full autocomplete and type inference due to limitations in function overload support.fixExplicitly annotate the client variable with the correct `mypy-boto3-firehose` client type, e.g., `client: FirehoseClient = boto3.client("firehose")`. This ensures consistent type inference across environments. affects: All versions
Upgrade
Version history
1.43.29latest on PyPI · released Jun 12, 2026
Audit
Dependencies
boto3requiredProvides type annotations for the `boto3` library.