Type annotations for boto3.SNS 1.21.0 service generated by mypy-boto3-builder 7.0.4
Project description
mypy-boto3-sns
Type annotations for boto3.SNS 1.21.0 service compatible with VSCode, PyCharm, Emacs, Sublime Text, mypy, pyright and other tools.
Generated by mypy-boto3-builder 7.0.4.
More information can be found on boto3-stubs page and in mypy-boto3-sns docs
See how it helps to find and fix potential bugs:
- mypy-boto3-sns
How to install
VSCode extension
Add
AWS Boto3
extension to your VSCode and run AWS boto3: Quick Start
command.
Click Modify
and select boto3 common
and SNS
.
From PyPI with pip
Install boto3-stubs
for SNS
service.
# install with boto3 type annotations
python -m pip install 'boto3-stubs[sns]'
# Lite version does not provide session.client/resource overloads
# it is more RAM-friendly, but requires explicit type annotations
python -m pip install 'boto3-stubs-lite[sns]'
# standalone installation
python -m pip install mypy-boto3-sns
How to uninstall
python -m pip uninstall -y mypy-boto3-sns
Usage
VSCode
- Install Python extension
- Install Pylance extension
- Set
Pylance
as your Python Language Server - Install
boto3-stubs[sns]
in your environment:
python -m pip install 'boto3-stubs[sns]'
Both type checking and auto-complete should now work. No explicit type
annotations required, write your boto3
code as usual.
PyCharm
Install boto3-stubs-lite[sns]
in your environment:
python -m pip install 'boto3-stubs-lite[sns]'`
Both type checking and auto-complete should now work. Explicit type annotations
are required. Use boto3-stubs
package instead for implicit type
discovery.
Emacs
- Install
boto3-stubs
with services you use in your environment:
python -m pip install 'boto3-stubs[sns]'
- Install use-package, lsp, company and flycheck packages
- Install lsp-pyright package
(use-package lsp-pyright
:ensure t
:hook (python-mode . (lambda ()
(require 'lsp-pyright)
(lsp))) ; or lsp-deferred
:init (when (executable-find "python3")
(setq lsp-pyright-python-executable-cmd "python3"))
)
- Make sure emacs uses the environment where you have installed
boto3-stubs
Type checking should now work. No explicit type annotations required, write
your boto3
code as usual.
Sublime Text
- Install
boto3-stubs[sns]
with services you use in your environment:
python -m pip install 'boto3-stubs[sns]'
- Install LSP-pyright package
Type checking should now work. No explicit type annotations required, write
your boto3
code as usual.
Other IDEs
Not tested, but as long as your IDE supports mypy
or pyright
, everything
should work.
mypy
- Install
mypy
:python -m pip install mypy
- Install
boto3-stubs[sns]
in your environment:
python -m pip install 'boto3-stubs[sns]'`
Type checking should now work. No explicit type annotations required, write
your boto3
code as usual.
pyright
- Install
pyright
:npm i -g pyright
- Install
boto3-stubs[sns]
in your environment:
python -m pip install 'boto3-stubs[sns]'
Optionally, you can install boto3-stubs
to typings
folder.
Type checking should now work. No explicit type annotations required, write
your boto3
code as usual.
Explicit type annotations
Client annotations
SNSClient
provides annotations for boto3.client("sns")
.
from boto3.session import Session
from mypy_boto3_sns import SNSClient
client: SNSClient = Session().client("sns")
# now client usage is checked by mypy and IDE should provide code auto-complete
Paginators annotations
mypy_boto3_sns.paginator
module contains type annotations for all paginators.
from boto3.session import Session
from mypy_boto3_sns import SNSClient
from mypy_boto3_sns.paginator import (
ListEndpointsByPlatformApplicationPaginator,
ListOriginationNumbersPaginator,
ListPhoneNumbersOptedOutPaginator,
ListPlatformApplicationsPaginator,
ListSMSSandboxPhoneNumbersPaginator,
ListSubscriptionsPaginator,
ListSubscriptionsByTopicPaginator,
ListTopicsPaginator,
)
client: SNSClient = Session().client("sns")
# Explicit type annotations are optional here
# Type should be correctly discovered by mypy and IDEs
# VSCode requires explicit type annotations
list_endpoints_by_platform_application_paginator: ListEndpointsByPlatformApplicationPaginator = client.get_paginator("list_endpoints_by_platform_application")
list_origination_numbers_paginator: ListOriginationNumbersPaginator = client.get_paginator("list_origination_numbers")
list_phone_numbers_opted_out_paginator: ListPhoneNumbersOptedOutPaginator = client.get_paginator("list_phone_numbers_opted_out")
list_platform_applications_paginator: ListPlatformApplicationsPaginator = client.get_paginator("list_platform_applications")
list_sms_sandbox_phone_numbers_paginator: ListSMSSandboxPhoneNumbersPaginator = client.get_paginator("list_sms_sandbox_phone_numbers")
list_subscriptions_paginator: ListSubscriptionsPaginator = client.get_paginator("list_subscriptions")
list_subscriptions_by_topic_paginator: ListSubscriptionsByTopicPaginator = client.get_paginator("list_subscriptions_by_topic")
list_topics_paginator: ListTopicsPaginator = client.get_paginator("list_topics")
Service Resource annotations
SNSServiceResource
provides annotations for boto3.resource("sns")
.
from boto3.session import Session
from mypy_boto3_sns import SNSServiceResource
resource: SNSServiceResource = Session().resource("sns")
# now resource usage is checked by mypy and IDE should provide code auto-complete
Other resources annotations
mypy_boto3_sns.service_resource
module contains type annotations for all
resources.
from boto3.session import Session
from mypy_boto3_sns import SNSServiceResource
from mypy_boto3_sns.service_resource import (
PlatformApplication,
PlatformEndpoint,
Subscription,
Topic,
)
resource: SNSServiceResource = Session().resource("sns")
# Explicit type annotations are optional here
# Type should be correctly discovered by mypy and IDEs
my_platform_application: PlatformApplication = resource.PlatformApplication(...)
my_platform_endpoint: PlatformEndpoint = resource.PlatformEndpoint(...)
my_subscription: Subscription = resource.Subscription(...)
my_topic: Topic = resource.Topic(...)
Collections annotations
mypy_boto3_sns.service_resource
module contains type annotations for all
SNSServiceResource
collections.
from boto3.session import Session
from mypy_boto3_sns import SNSServiceResource
from mypy_boto3_sns.service_resource import (
ServiceResourcePlatformApplicationsCollection,
ServiceResourceSubscriptionsCollection,
ServiceResourceTopicsCollection,
)
resource: SNSServiceResource = Session().resource("sns")
# Explicit type annotations are optional here
# Type should be correctly discovered by mypy and IDEs
platform_applications: sns_resources.ServiceResourcePlatformApplicationsCollection = resource.platform_applications
subscriptions: sns_resources.ServiceResourceSubscriptionsCollection = resource.subscriptions
topics: sns_resources.ServiceResourceTopicsCollection = resource.topics
Literals
mypy_boto3_sns.literals
module contains literals extracted from shapes that
can be used in user code for type checking.
from mypy_boto3_sns.literals import (
LanguageCodeStringType,
ListEndpointsByPlatformApplicationPaginatorName,
ListOriginationNumbersPaginatorName,
ListPhoneNumbersOptedOutPaginatorName,
ListPlatformApplicationsPaginatorName,
ListSMSSandboxPhoneNumbersPaginatorName,
ListSubscriptionsByTopicPaginatorName,
ListSubscriptionsPaginatorName,
ListTopicsPaginatorName,
NumberCapabilityType,
RouteTypeType,
SMSSandboxPhoneNumberVerificationStatusType,
ServiceName,
PaginatorName,
)
def check_value(value: LanguageCodeStringType) -> bool:
...
Typed dictionaries
mypy_boto3_sns.type_defs
module contains structures and shapes assembled to
typed dictionaries for additional type checking.
from mypy_boto3_sns.type_defs import (
AddPermissionInputRequestTypeDef,
AddPermissionInputTopicTypeDef,
BatchResultErrorEntryTypeDef,
CheckIfPhoneNumberIsOptedOutInputRequestTypeDef,
CheckIfPhoneNumberIsOptedOutResponseTypeDef,
ConfirmSubscriptionInputRequestTypeDef,
ConfirmSubscriptionInputTopicTypeDef,
ConfirmSubscriptionResponseTypeDef,
CreateEndpointResponseTypeDef,
CreatePlatformApplicationInputRequestTypeDef,
CreatePlatformApplicationInputServiceResourceTypeDef,
CreatePlatformApplicationResponseTypeDef,
CreatePlatformEndpointInputPlatformApplicationTypeDef,
CreatePlatformEndpointInputRequestTypeDef,
CreateSMSSandboxPhoneNumberInputRequestTypeDef,
CreateTopicInputRequestTypeDef,
CreateTopicInputServiceResourceTypeDef,
CreateTopicResponseTypeDef,
DeleteEndpointInputRequestTypeDef,
DeletePlatformApplicationInputRequestTypeDef,
DeleteSMSSandboxPhoneNumberInputRequestTypeDef,
DeleteTopicInputRequestTypeDef,
EndpointTypeDef,
GetEndpointAttributesInputRequestTypeDef,
GetEndpointAttributesResponseTypeDef,
GetPlatformApplicationAttributesInputRequestTypeDef,
GetPlatformApplicationAttributesResponseTypeDef,
GetSMSAttributesInputRequestTypeDef,
GetSMSAttributesResponseTypeDef,
GetSMSSandboxAccountStatusResultTypeDef,
GetSubscriptionAttributesInputRequestTypeDef,
GetSubscriptionAttributesResponseTypeDef,
GetTopicAttributesInputRequestTypeDef,
GetTopicAttributesResponseTypeDef,
ListEndpointsByPlatformApplicationInputRequestTypeDef,
ListEndpointsByPlatformApplicationResponseTypeDef,
ListOriginationNumbersRequestRequestTypeDef,
ListOriginationNumbersResultTypeDef,
ListPhoneNumbersOptedOutInputRequestTypeDef,
ListPhoneNumbersOptedOutResponseTypeDef,
ListPlatformApplicationsInputRequestTypeDef,
ListPlatformApplicationsResponseTypeDef,
ListSMSSandboxPhoneNumbersInputRequestTypeDef,
ListSMSSandboxPhoneNumbersResultTypeDef,
ListSubscriptionsByTopicInputRequestTypeDef,
ListSubscriptionsByTopicResponseTypeDef,
ListSubscriptionsInputRequestTypeDef,
ListSubscriptionsResponseTypeDef,
ListTagsForResourceRequestRequestTypeDef,
ListTagsForResourceResponseTypeDef,
ListTopicsInputRequestTypeDef,
ListTopicsResponseTypeDef,
MessageAttributeValueTypeDef,
OptInPhoneNumberInputRequestTypeDef,
PaginatorConfigTypeDef,
PhoneNumberInformationTypeDef,
PlatformApplicationTypeDef,
PublishBatchInputRequestTypeDef,
PublishBatchRequestEntryTypeDef,
PublishBatchResponseTypeDef,
PublishBatchResultEntryTypeDef,
PublishInputPlatformEndpointTypeDef,
PublishInputRequestTypeDef,
PublishInputTopicTypeDef,
PublishResponseTypeDef,
RemovePermissionInputRequestTypeDef,
RemovePermissionInputTopicTypeDef,
ResponseMetadataTypeDef,
SMSSandboxPhoneNumberTypeDef,
ServiceResourcePlatformApplicationRequestTypeDef,
ServiceResourcePlatformEndpointRequestTypeDef,
ServiceResourceSubscriptionRequestTypeDef,
ServiceResourceTopicRequestTypeDef,
SetEndpointAttributesInputPlatformEndpointTypeDef,
SetEndpointAttributesInputRequestTypeDef,
SetPlatformApplicationAttributesInputPlatformApplicationTypeDef,
SetPlatformApplicationAttributesInputRequestTypeDef,
SetSMSAttributesInputRequestTypeDef,
SetSubscriptionAttributesInputRequestTypeDef,
SetSubscriptionAttributesInputSubscriptionTypeDef,
SetTopicAttributesInputRequestTypeDef,
SetTopicAttributesInputTopicTypeDef,
SubscribeInputRequestTypeDef,
SubscribeInputTopicTypeDef,
SubscribeResponseTypeDef,
SubscriptionTypeDef,
TagResourceRequestRequestTypeDef,
TagTypeDef,
TopicTypeDef,
UnsubscribeInputRequestTypeDef,
UntagResourceRequestRequestTypeDef,
VerifySMSSandboxPhoneNumberInputRequestTypeDef,
)
def get_structure() -> AddPermissionInputRequestTypeDef:
return {
...
}
How it works
Fully automated
mypy-boto3-builder carefully
generates type annotations for each service, patiently waiting for boto3
updates. It delivers a drop-in type annotations for you and makes sure that:
- All available
boto3
services are covered. - Each public class and method of every
boto3
service gets valid type annotations extracted from the documentation (blamebotocore
docs if types are incorrect). - Type annotations include up-to-date documentation.
- Link to documentation is provided for every method.
- Code is processed by black and isort for readability.
What's new
Implemented features
- Fully type annotated
boto3
,botocore
andaiobotocore
libraries mypy
,pyright
,VSCode
,PyCharm
,Sublime Text
andEmacs
compatibilityClient
,ServiceResource
,Resource
,Waiter
Paginator
type annotations for each service- Generated
TypeDefs
for each service - Generated
Literals
for each service - Auto discovery of types for
boto3.client
andboto3.session
calls - Auto discovery of types for
session.client
andsession.session
calls - Auto discovery of types for
client.get_waiter
andclient.get_paginator
calls - Auto discovery of types for
ServiceResource
andResource
collections - Auto discovery of types for
aiobotocore.Session.create_client
calls
Latest changes
Builder changelog can be found in Releases.
Versioning
mypy-boto3-sns
version is the same as related boto3
version and follows
PEP 440 format.
Thank you
- Allie Fitter for boto3-type-annotations, this package is based on top of his work
- black developers for an awesome formatting tool
- Timothy Edmund Crosley for isort and how flexible it is
- mypy developers for doing all dirty work for us
- pyright team for the new era of typed Python
Documentation
All services type annotations can be found in boto3 docs
Support and contributing
This package is auto-generated. Please reports any bugs or request new features in mypy-boto3-builder repository.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mypy-boto3-sns-1.21.0.tar.gz
.
File metadata
- Download URL: mypy-boto3-sns-1.21.0.tar.gz
- Upload date:
- Size: 30.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 280980e10cb6ae3cf3f2dcd2143938fcee51a015d13ed4378b07f5b33609b5ad |
|
MD5 | 53e609d5135ab7a9a2d5424c9e9e21fc |
|
BLAKE2b-256 | 9e6b08e51df3f88a81e0aa05705d54b5f6e50e8502510af15bb4e1a329f672db |
File details
Details for the file mypy_boto3_sns-1.21.0-py3-none-any.whl
.
File metadata
- Download URL: mypy_boto3_sns-1.21.0-py3-none-any.whl
- Upload date:
- Size: 37.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5ee30d72161b52c62b9f6632eac7adeb4e50ccdadfefde05d0ba88b07a4dea3 |
|
MD5 | 2eee47b5f9ff6b8853fa6966856b09c5 |
|
BLAKE2b-256 | 6b54640223adff35eadc1012fbee5417d1e0681976243e7edc82d74d7bab0d1a |