diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index d4a460135..4c77278c7 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -12,7 +12,7 @@ A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: -1. Install `boto3-stubs[...]` +1. Install `types-boto3[...]` 2. Run `mypy`/`pyright` on the following code sample ```python @@ -34,4 +34,4 @@ import boto3 ``` **Additional context** -Your OS, `boto3-stubs` installation method, `boto3` version, etc. +Your OS, `types-boto3` installation method, `boto3` version, etc. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 49cc4aff1..270508dea 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -13,4 +13,4 @@ A clear and concise description of what is needed. Provide a code sample to test the feature implementation. **Additional context** -Your OS, `boto3-stubs` installation method, `boto3` version, etc. +Your OS, `types-boto3` installation method, `boto3` version, etc. diff --git a/.github/ISSUE_TEMPLATE/vulnerability_report.md b/.github/ISSUE_TEMPLATE/vulnerability_report.md index fe639e9c4..669a98517 100644 --- a/.github/ISSUE_TEMPLATE/vulnerability_report.md +++ b/.github/ISSUE_TEMPLATE/vulnerability_report.md @@ -1,6 +1,6 @@ --- name: Vulnerability report -about: Report a vulnerability in boto3-stubs, types-aiobotocore or types-aioboto3 +about: Report a vulnerability in types-boto3, boto3-stubs, types-aiobotocore or types-aioboto3 title: "Vulnerability report:" labels: "🐞 bug" assignees: "" @@ -11,5 +11,5 @@ A clear and concise description of what the vulnerability is. **Additional context** -Product: `boto3-stubs`/`types-aiobotocore`/`types-aioboto3` +Product: `types-boto3`/`boto3-stubs`/`types-aiobotocore`/`types-aioboto3` Version: `x.x.x` diff --git a/.github/workflows/helpers.js b/.github/workflows/helpers.js index 79519fc58..d923ba9a3 100644 --- a/.github/workflows/helpers.js +++ b/.github/workflows/helpers.js @@ -79,6 +79,10 @@ async function getStubsVersions(boto3Version) { return await getPackageVersions('boto3-stubs', boto3Version) } +async function getTypesBoto3Versions(boto3Version) { + return await getPackageVersions('types-boto3', boto3Version) +} + async function getPackageVersions(packageName, version) { const allVersions = await getReleaseVersions(packageName) const versions = allVersions.filter(v => v === version || v.startsWith(`${version}.`)) @@ -300,6 +304,7 @@ module.exports = { getBoto3Version, getPackageVersions, getStubsVersions, + getTypesBoto3Versions, getBotocoreVersion, extractVersions, extractDownloadLinks, diff --git a/.github/workflows/publish_types_boto3.yml b/.github/workflows/publish_types_boto3.yml index 9f207c1bf..6307adbc0 100644 --- a/.github/workflows/publish_types_boto3.yml +++ b/.github/workflows/publish_types_boto3.yml @@ -201,40 +201,24 @@ jobs: run: | rm -rf mypy_boto3_builder python -m pip install mypy_boto3_builder - # - name: Build updated packages only - # if: needs.versions.outputs.build-all == 'false' - # env: - # VERSION: ${{ needs.versions.outputs.version }} - # EXTRA_FLAGS: ${{ needs.versions.outputs.extra-flags }} - # run: | - # rm -rf mypy_boto3_output/* - - # echo "Building updated packages" - # python -m mypy_boto3_builder mypy_boto3_output \ - # -b ${VERSION} \ - # --product types-boto3 types-boto3-lite types-boto3-services \ - # ${EXTRA_FLAGS} \ - # --output-type wheel sdist \ - # --download-static-stubs \ - # -s updated -d - # - name: Build all packages - # if: needs.versions.outputs.build-all == 'true' - # env: - # VERSION: ${{ needs.versions.outputs.version }} - # EXTRA_FLAGS: ${{ needs.versions.outputs.extra-flags }} - # run: | - # rm -rf mypy_boto3_output/* + - name: Build updated packages only + if: needs.versions.outputs.build-all == 'false' + env: + VERSION: ${{ needs.versions.outputs.version }} + EXTRA_FLAGS: ${{ needs.versions.outputs.extra-flags }} + run: | + rm -rf mypy_boto3_output/* - # echo "Building all packages" - # python -m mypy_boto3_builder mypy_boto3_output \ - # -b ${VERSION} \ - # --product types-boto3 types-boto3-lite types-boto3-services \ - # ${EXTRA_FLAGS} \ - # --output-type wheel sdist \ - # --download-static-stubs \ - # -s all -d - # FIXME: Delete tomorrow - - name: Temp initial release all packages + echo "Building updated packages" + python -m mypy_boto3_builder mypy_boto3_output \ + -b ${VERSION} \ + --product types-boto3 types-boto3-lite types-boto3-services \ + ${EXTRA_FLAGS} \ + --output-type wheel sdist \ + --download-static-stubs \ + -s updated -d + - name: Build all packages + if: needs.versions.outputs.build-all == 'true' env: VERSION: ${{ needs.versions.outputs.version }} EXTRA_FLAGS: ${{ needs.versions.outputs.extra-flags }} @@ -245,9 +229,10 @@ jobs: python -m mypy_boto3_builder mypy_boto3_output \ -b ${VERSION} \ --product types-boto3 types-boto3-lite types-boto3-services \ + ${EXTRA_FLAGS} \ --output-type wheel sdist \ - --skip-published \ - -s all + --download-static-stubs \ + -s all -d - name: Install dependencies for publishing run: | python -m pip install setuptools wheel twine diff --git a/README.md b/README.md index da56a28dd..f0702d372 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,11 @@ ![boto3.typed](https://github.com/youtype/mypy_boto3_builder/raw/main/logo.png) -Type annotations builder for [boto3-stubs](https://pypi.org/project/boto3-stubs/), [types-aiobotocore](https://pypi.org/project/types-aiobotocore/), and [types-aioboto3](https://pypi.org/project/types-aioboto3/) projects. Compatible with +Type annotations generator for [types-boto3](https://pypi.org/project/types-boto3/), +[boto3-stubs](https://pypi.org/project/boto3-stubs/), +[types-aiobotocore](https://pypi.org/project/types-aiobotocore/), +and [types-aioboto3](https://pypi.org/project/types-aioboto3/) projects. +Compatible with [VSCode](https://code.visualstudio.com/), [PyCharm](https://www.jetbrains.com/pycharm/), [Emacs](https://www.gnu.org/software/emacs/), diff --git a/SECURITY.md b/SECURITY.md index 4cc0ce376..0d70baf1f 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,5 +1,12 @@ # Security Policy +## Supported `types-boto3` versions + +| Version | Supported | +| ------- | ------------------ | +| 1.24.x | :white_check_mark: | +| <= 1.23.x | :x: | + ## Supported `boto3-stubs` versions | Version | Supported | diff --git a/docsmd/how_to_build.md b/docsmd/how_to_build.md index 94d2b6767..a1d9d1185 100644 --- a/docsmd/how_to_build.md +++ b/docsmd/how_to_build.md @@ -4,22 +4,19 @@ ```bash # Install preferred version of `boto3` -python -m pip install boto3==1.16.25 botocore==1.19.25 +python -m pip install boto3==1.35.71 botocore==1.35.71 # Install `mypy-boto3-builder` python -m pip install mypy-boto3-builder -# Build all packages in mypy_boto3_output directory -python -m mypy_boto3_builder mypy_boto3_output +# Build all packages in typings directory +python -m mypy_boto3_builder ./typings --product types-boto3 types-boto3-services --output-type wheel # Or specify required services explicitly -python -m mypy_boto3_builder mypy_boto3_output -s ec2 s3 +python -m mypy_boto3_builder ./typings --product types-boto3 types-boto3-services --output-type wheel -s ec2 s3 -# Install custom `boto3-stubs` packages -cd mypy_boto3_output -python -m pip install -e ./mypy_boto3_ec2_package -python -m pip install -e ./mypy_boto3_s3_package -python -m pip install -e ./boto3_stubs_package +# Install custom `types-boto3` packages +python -m pip install ./typings/*.whl ``` ## With Docker image @@ -44,7 +41,7 @@ docker run -v `pwd`/output:/output -ti mypy_boto3_builder_stable docker run -v `pwd`/output:/output -ti mypy_boto3_builder_stable -s s3 # generate stubs for a specific boto3 version -docker run -e BOTO3_VERSION=1.16.25 BOTOCORE_VERSION=1.19.25 -v `pwd`/output:/output -ti mypy_boto3_builder_stable +docker run -e BOTO3_VERSION=1.35.71 BOTOCORE_VERSION=1.35.71 -v `pwd`/output:/output -ti mypy_boto3_builder_stable ``` - Install packages from `output` directory as described above diff --git a/docsmd/index.md b/docsmd/index.md index 42f0cc628..d7248a035 100644 --- a/docsmd/index.md +++ b/docsmd/index.md @@ -1,6 +1,10 @@ # Mypy Boto3 Builder -Type annotations builder for [boto3-stubs](https://pypi.org/project/boto3-stubs/), [types-aiobotocore](https://pypi.org/project/types-aiobotocore/), and [types-aioboto3](https://pypi.org/project/types-aioboto3/) projects. Compatible with +Type annotations generator for [types-boto3](https://pypi.org/project/types-boto3/), +[boto3-stubs](https://pypi.org/project/boto3-stubs/), +[types-aiobotocore](https://pypi.org/project/types-aiobotocore/), +and [types-aioboto3](https://pypi.org/project/types-aioboto3/) projects. +Compatible with [VSCode](https://code.visualstudio.com/), [PyCharm](https://www.jetbrains.com/pycharm/), [Emacs](https://www.gnu.org/software/emacs/), diff --git a/mypy_boto3_builder/cli_parser.py b/mypy_boto3_builder/cli_parser.py index 77de0aca3..a7ae4ec71 100644 --- a/mypy_boto3_builder/cli_parser.py +++ b/mypy_boto3_builder/cli_parser.py @@ -122,7 +122,7 @@ def parse_args(args: Sequence[str]) -> CLINamespace: parser = argparse.ArgumentParser( PROG_NAME, - description="Builder for boto3-stubs and types-aiobotocore.", + description="Type annotations generator for boto3, aiobotocore and aioboto3.", ) parser.add_argument("-d", "--debug", action="store_true", help="Show debug messages") parser.add_argument( @@ -188,7 +188,7 @@ def parse_args(args: Sequence[str]) -> CLINamespace: parser.add_argument( "--partial-overload", action="store_true", - help="Build boto3-stubs client/service overload only for selected services", + help="Build client/service overload only for selected services", ) parser.add_argument( "--installed", diff --git a/mypy_boto3_builder/constants.py b/mypy_boto3_builder/constants.py index ee0f70bcd..cdf815a3a 100644 --- a/mypy_boto3_builder/constants.py +++ b/mypy_boto3_builder/constants.py @@ -10,7 +10,7 @@ # Root path for the project ROOT_PATH: Final = Path(__file__).parent -# Jinja2 templates for boto3-stubs +# Jinja2 templates TEMPLATES_PATH: Final = ROOT_PATH / "templates" # Max line length for formatting diff --git a/mypy_boto3_builder/parsers/parse_wrapper_package.py b/mypy_boto3_builder/parsers/parse_wrapper_package.py index 209e12420..4824b11cd 100644 --- a/mypy_boto3_builder/parsers/parse_wrapper_package.py +++ b/mypy_boto3_builder/parsers/parse_wrapper_package.py @@ -22,7 +22,7 @@ def parse_types_boto3_package( version: str, ) -> TypesBoto3Package: """ - Parse data for boto3-stubs package. + Parse data for types-boto3 package. Arguments: service_names -- All available service names diff --git a/mypy_boto3_builder/parsers/wrapper_package_parser.py b/mypy_boto3_builder/parsers/wrapper_package_parser.py index 46ebd7776..2fe55159c 100644 --- a/mypy_boto3_builder/parsers/wrapper_package_parser.py +++ b/mypy_boto3_builder/parsers/wrapper_package_parser.py @@ -28,7 +28,7 @@ class WrapperPackageParser: """ - Parser for boto3-stubs/types-aiobotocore/types-aioboto3 package. + Parser for types-boto3/types-aiobotocore/types-aioboto3 package. Arguments: package -- Prepared wrapper package with data diff --git a/mypy_boto3_builder/service_name.py b/mypy_boto3_builder/service_name.py index 734931789..44eb4c926 100644 --- a/mypy_boto3_builder/service_name.py +++ b/mypy_boto3_builder/service_name.py @@ -96,7 +96,7 @@ def extras_name(self) -> str: def is_essential(self) -> bool: """ - Whether service is included to `boto3-stubs[essential]`. + Whether service is included to `types-library[essential]`. """ return self.name in self.ESSENTIAL_NAMES diff --git a/mypy_boto3_builder/structures/mypy_boto3_package.py b/mypy_boto3_builder/structures/mypy_boto3_package.py index 09981dca2..e62a367eb 100644 --- a/mypy_boto3_builder/structures/mypy_boto3_package.py +++ b/mypy_boto3_builder/structures/mypy_boto3_package.py @@ -1,5 +1,5 @@ """ -Structure for boto3-stubs module. +Structure for mypy-boto3 package. Copyright 2024 Vlad Emelianov """ diff --git a/mypy_boto3_builder/structures/wrapper_package.py b/mypy_boto3_builder/structures/wrapper_package.py index 19e6980dd..d6b91695d 100644 --- a/mypy_boto3_builder/structures/wrapper_package.py +++ b/mypy_boto3_builder/structures/wrapper_package.py @@ -22,7 +22,7 @@ class WrapperPackage(Package, ABC): """ - Structure for boto3-stubs/types-aiobotocore/types-aioboto3 module. + Main package module data. """ def __init__( diff --git a/mypy_boto3_builder/templates/boto3-stubs-full/README.md.jinja2 b/mypy_boto3_builder/templates/boto3-stubs-full/README.md.jinja2 index 07f3a063d..36e840927 100644 --- a/mypy_boto3_builder/templates/boto3-stubs-full/README.md.jinja2 +++ b/mypy_boto3_builder/templates/boto3-stubs-full/README.md.jinja2 @@ -12,10 +12,10 @@ To speed up type checking and code completion, you can set types explicitly. import boto3 from boto3.session import Session -from mypy_boto3_ec2.client import EC2Client -from mypy_boto3_ec2.service_resource import EC2ServiceResource -from mypy_boto3_ec2.waiter import BundleTaskCompleteWaiter -from mypy_boto3_ec2.paginator import DescribeVolumesPaginator +from {{ package.data.SERVICE_PREFIX }}_ec2.client import EC2Client +from {{ package.data.SERVICE_PREFIX }}_ec2.service_resource import EC2ServiceResource +from {{ package.data.SERVICE_PREFIX }}_ec2.waiter import BundleTaskCompleteWaiter +from {{ package.data.SERVICE_PREFIX }}_ec2.paginator import DescribeVolumesPaginator session = Session(region_name="us-west-1") @@ -28,7 +28,7 @@ describe_volumes_paginator: DescribeVolumesPaginator = ec2_client.get_paginator( ### Pylint compatibility -It is totally safe to use `TYPE_CHECKING` flag in order to avoid `boto3-stubs` +It is totally safe to use `TYPE_CHECKING` flag in order to avoid `{{ package.pypi_name }}` dependency in production. However, there is an issue in `pylint` that it complains about undefined variables. To fix it, set all types to `object` in non-`TYPE_CHECKING` mode. @@ -38,9 +38,9 @@ import boto3 from typing import TYPE_CHECKING if TYPE_CHECKING: - from mypy_boto3_ec2 import EC2Client, EC2ServiceResource - from mypy_boto3_ec2.waiters import BundleTaskCompleteWaiter - from mypy_boto3_ec2.paginators import DescribeVolumesPaginator + from {{ package.data.SERVICE_PREFIX }}_ec2 import EC2Client, EC2ServiceResource + from {{ package.data.SERVICE_PREFIX }}_ec2.waiters import BundleTaskCompleteWaiter + from {{ package.data.SERVICE_PREFIX }}_ec2.paginators import DescribeVolumesPaginator else: EC2Client = object EC2ServiceResource = object diff --git a/mypy_boto3_builder/templates/boto3-stubs-full/setup.py.jinja2 b/mypy_boto3_builder/templates/boto3-stubs-full/setup.py.jinja2 index a6fc54c50..f2af90f7a 100644 --- a/mypy_boto3_builder/templates/boto3-stubs-full/setup.py.jinja2 +++ b/mypy_boto3_builder/templates/boto3-stubs-full/setup.py.jinja2 @@ -30,7 +30,7 @@ setup( {{ "\n " -}}"{{ classifier -}}", {%- endfor %} ], - keywords='boto3 type-annotations boto3-stubs mypy typeshed autocomplete', + keywords='{{ package.library_name }} {{ package.library_name }}-stubs type-annotations typeshed autocomplete', long_description=LONG_DESCRIPTION, long_description_content_type="text/markdown", package_data={ diff --git a/mypy_boto3_builder/templates/boto3-stubs/README.md.jinja2 b/mypy_boto3_builder/templates/boto3-stubs/README.md.jinja2 index 7e182117e..23b544191 100644 --- a/mypy_boto3_builder/templates/boto3-stubs/README.md.jinja2 +++ b/mypy_boto3_builder/templates/boto3-stubs/README.md.jinja2 @@ -14,10 +14,10 @@ To speed up type checking and code completion, you can set types explicitly. import boto3 from boto3.session import Session -from mypy_boto3_ec2.client import EC2Client -from mypy_boto3_ec2.service_resource import EC2ServiceResource -from mypy_boto3_ec2.waiter import BundleTaskCompleteWaiter -from mypy_boto3_ec2.paginator import DescribeVolumesPaginator +from {{ package.data.SERVICE_PREFIX }}_ec2.client import EC2Client +from {{ package.data.SERVICE_PREFIX }}_ec2.service_resource import EC2ServiceResource +from {{ package.data.SERVICE_PREFIX }}_ec2.waiter import BundleTaskCompleteWaiter +from {{ package.data.SERVICE_PREFIX }}_ec2.paginator import DescribeVolumesPaginator session = Session(region_name="us-west-1") @@ -30,7 +30,7 @@ describe_volumes_paginator: DescribeVolumesPaginator = ec2_client.get_paginator( ### Pylint compatibility -It is totally safe to use `TYPE_CHECKING` flag in order to avoid `boto3-stubs` +It is totally safe to use `TYPE_CHECKING` flag in order to avoid `{{ package.pypi_name }}` dependency in production. However, there is an issue in `pylint` that it complains about undefined variables. To fix it, set all types to `object` in non-`TYPE_CHECKING` mode. @@ -40,9 +40,9 @@ import boto3 from typing import TYPE_CHECKING if TYPE_CHECKING: - from mypy_boto3_ec2 import EC2Client, EC2ServiceResource - from mypy_boto3_ec2.waiters import BundleTaskCompleteWaiter - from mypy_boto3_ec2.paginators import DescribeVolumesPaginator + from {{ package.data.SERVICE_PREFIX }}_ec2 import EC2Client, EC2ServiceResource + from {{ package.data.SERVICE_PREFIX }}_ec2.waiters import BundleTaskCompleteWaiter + from {{ package.data.SERVICE_PREFIX }}_ec2.paginators import DescribeVolumesPaginator else: EC2Client = object EC2ServiceResource = object diff --git a/mypy_boto3_builder/templates/boto3-stubs/setup.py.jinja2 b/mypy_boto3_builder/templates/boto3-stubs/setup.py.jinja2 index 850b577b7..4c2ec615e 100644 --- a/mypy_boto3_builder/templates/boto3-stubs/setup.py.jinja2 +++ b/mypy_boto3_builder/templates/boto3-stubs/setup.py.jinja2 @@ -26,7 +26,7 @@ setup( {{ "\n " -}}"{{ classifier -}}", {%- endfor %} ], - keywords='boto3 type-annotations boto3-stubs mypy typeshed autocomplete', + keywords='{{ package.library_name }} {{ package.library_name }}-stubs type-annotations typeshed autocomplete', long_description=LONG_DESCRIPTION, long_description_content_type="text/markdown", package_data={"{{ package.name }}": ["py.typed", "*.pyi", "*/*.pyi"]}, diff --git a/mypy_boto3_builder/templates/common/header.md.jinja2 b/mypy_boto3_builder/templates/common/header.md.jinja2 index ddc0f7def..8b73ab6a6 100644 --- a/mypy_boto3_builder/templates/common/header.md.jinja2 +++ b/mypy_boto3_builder/templates/common/header.md.jinja2 @@ -30,4 +30,4 @@ More information can be found in [{{ package.data.PYPI_STUBS_NAME }} docs]({{ pa See how it helps you find and fix potential bugs: -![boto3-stubs demo]({{ builder_repo_url }}/raw/main/demo.gif) +![types-boto3 demo]({{ builder_repo_url }}/raw/main/demo.gif) diff --git a/mypy_boto3_builder/templates/common/service/setup.py.jinja2 b/mypy_boto3_builder/templates/common/service/setup.py.jinja2 index 305fc8bad..ecc9d526b 100644 --- a/mypy_boto3_builder/templates/common/service/setup.py.jinja2 +++ b/mypy_boto3_builder/templates/common/service/setup.py.jinja2 @@ -25,7 +25,7 @@ setup( {{ "\n " -}}"{{ classifier -}}", {%- endfor %} ], - keywords='{{ package.library_name }} {{ service_name.boto3_name }} type-annotations botocore mypy typeshed autocomplete', + keywords='{{ package.library_name }} {{ service_name.boto3_name }} {{ package.library_name }}-stubs type-annotations mypy typeshed autocomplete', long_description=LONG_DESCRIPTION, long_description_content_type="text/markdown", package_data={"{{ package.name }}": ["py.typed", "*.pyi"]}, diff --git a/mypy_boto3_builder/templates/mypy-boto3/README.md.jinja2 b/mypy_boto3_builder/templates/mypy-boto3/README.md.jinja2 index 7907920f4..0f21f4d72 100644 --- a/mypy_boto3_builder/templates/mypy-boto3/README.md.jinja2 +++ b/mypy_boto3_builder/templates/mypy-boto3/README.md.jinja2 @@ -8,28 +8,27 @@ ![boto3.typed]({{ builder_repo_url }}/raw/main/logo.png) Dynamic [{{ package.library_name }} {{ package.library_version }}](https://boto3.amazonaws.com/v1/documentation/api/{{ package.library_version }}/index.html) -type annotations builder for [boto3-stubs](https://pypi.org/project/boto3-stubs/). Generated by [{{ builder_package_name }} {{ builder_version }}]({{ builder_repo_url }}). -More information can be found on [boto3-stubs](https://pypi.org/project/boto3-stubs/) page. +More information can be found on [types-boto3](https://pypi.org/project/types-boto3/) page. See how it helps to find and fix potential bugs: -![boto3-stubs demo]({{ builder_repo_url }}/raw/main/demo.gif) +![types-boto3 demo]({{ builder_repo_url }}/raw/main/demo.gif) ## How to install ```bash # Install this package -python -m pip install boto3-stubs +python -m pip install types-boto3 # Install type annotations for boto3 services you use -python -m pip install 'boto3-stubs[s3,ec2]' +python -m pip install 'types-boto3[s3,ec2]' # 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[s3,ec2]' +python -m pip install 'types-boto3-lite[s3,ec2]' ``` ## Usage @@ -41,11 +40,11 @@ from typing import overload import boto3 from botocore.client import BaseClient -from mypy_boto3.literals import ServiceName -from mypy_boto3_ec2.client import EC2Client -from mypy_boto3_ec2.literals import EC2ServiceName -from mypy_boto3_s3.client import S3Client -from mypy_boto3_s3.literals import S3ServiceName +from types_boto3.literals import ServiceName +from types_boto3_ec2.client import EC2Client +from types_boto3_ec2.literals import EC2ServiceName +from types_boto3_s3.client import S3Client +from types_boto3_s3.literals import S3ServiceName @overload diff --git a/mypy_boto3_builder/templates/types-aioboto3/setup.py.jinja2 b/mypy_boto3_builder/templates/types-aioboto3/setup.py.jinja2 index 7bf93663a..bf0c7d49b 100644 --- a/mypy_boto3_builder/templates/types-aioboto3/setup.py.jinja2 +++ b/mypy_boto3_builder/templates/types-aioboto3/setup.py.jinja2 @@ -25,7 +25,7 @@ setup( {{ "\n " -}}"{{ classifier -}}", {%- endfor %} ], - keywords='aioboto3 type-annotations aioboto3-stubs mypy typeshed autocomplete', + keywords='{{ package.library_name }} {{ package.library_name }}-stubs type-annotations typeshed autocomplete', long_description=LONG_DESCRIPTION, long_description_content_type="text/markdown", package_data={"{{ package.name }}": ["py.typed", "*.pyi", "*/*.pyi"]}, diff --git a/mypy_boto3_builder/templates/types-aiobotocore-full/setup.py.jinja2 b/mypy_boto3_builder/templates/types-aiobotocore-full/setup.py.jinja2 index 78ce09cf0..afe04b88d 100644 --- a/mypy_boto3_builder/templates/types-aiobotocore-full/setup.py.jinja2 +++ b/mypy_boto3_builder/templates/types-aiobotocore-full/setup.py.jinja2 @@ -30,7 +30,7 @@ setup( {{ "\n " -}}"{{ classifier -}}", {%- endfor %} ], - keywords='{{ package.library_name }} type-annotations {{ package.library_name }}-stubs botocore-stubs mypy typeshed autocomplete', + keywords='{{ package.library_name }} {{ package.library_name }}-stubs type-annotations typeshed autocomplete', long_description=LONG_DESCRIPTION, long_description_content_type="text/markdown", package_data={ diff --git a/mypy_boto3_builder/templates/types-aiobotocore/setup.py.jinja2 b/mypy_boto3_builder/templates/types-aiobotocore/setup.py.jinja2 index f10b0c82f..a5c71ff65 100644 --- a/mypy_boto3_builder/templates/types-aiobotocore/setup.py.jinja2 +++ b/mypy_boto3_builder/templates/types-aiobotocore/setup.py.jinja2 @@ -26,7 +26,7 @@ setup( {{ "\n " -}}"{{ classifier -}}", {%- endfor %} ], - keywords='{{ package.library_name }} type-annotations {{ package.library_name }}-stubs botocore-stubs mypy typeshed autocomplete', + keywords='{{ package.library_name }} {{ package.library_name }}-stubs mypy typeshed autocomplete', long_description=LONG_DESCRIPTION, long_description_content_type="text/markdown", package_data={"{{ package.name }}": ["py.typed", "*.pyi", "*/*.pyi"]}, diff --git a/mypy_boto3_builder/templates/types-boto3-full/README.md.jinja2 b/mypy_boto3_builder/templates/types-boto3-full/README.md.jinja2 index 23eb44ae5..36e840927 100644 --- a/mypy_boto3_builder/templates/types-boto3-full/README.md.jinja2 +++ b/mypy_boto3_builder/templates/types-boto3-full/README.md.jinja2 @@ -28,7 +28,7 @@ describe_volumes_paginator: DescribeVolumesPaginator = ec2_client.get_paginator( ### Pylint compatibility -It is totally safe to use `TYPE_CHECKING` flag in order to avoid `boto3-stubs` +It is totally safe to use `TYPE_CHECKING` flag in order to avoid `{{ package.pypi_name }}` dependency in production. However, there is an issue in `pylint` that it complains about undefined variables. To fix it, set all types to `object` in non-`TYPE_CHECKING` mode. diff --git a/mypy_boto3_builder/templates/types-boto3-full/setup.py.jinja2 b/mypy_boto3_builder/templates/types-boto3-full/setup.py.jinja2 index a6fc54c50..f2af90f7a 100644 --- a/mypy_boto3_builder/templates/types-boto3-full/setup.py.jinja2 +++ b/mypy_boto3_builder/templates/types-boto3-full/setup.py.jinja2 @@ -30,7 +30,7 @@ setup( {{ "\n " -}}"{{ classifier -}}", {%- endfor %} ], - keywords='boto3 type-annotations boto3-stubs mypy typeshed autocomplete', + keywords='{{ package.library_name }} {{ package.library_name }}-stubs type-annotations typeshed autocomplete', long_description=LONG_DESCRIPTION, long_description_content_type="text/markdown", package_data={ diff --git a/mypy_boto3_builder/templates/types-boto3/README.md.jinja2 b/mypy_boto3_builder/templates/types-boto3/README.md.jinja2 index f908c8936..23b544191 100644 --- a/mypy_boto3_builder/templates/types-boto3/README.md.jinja2 +++ b/mypy_boto3_builder/templates/types-boto3/README.md.jinja2 @@ -30,7 +30,7 @@ describe_volumes_paginator: DescribeVolumesPaginator = ec2_client.get_paginator( ### Pylint compatibility -It is totally safe to use `TYPE_CHECKING` flag in order to avoid `boto3-stubs` +It is totally safe to use `TYPE_CHECKING` flag in order to avoid `{{ package.pypi_name }}` dependency in production. However, there is an issue in `pylint` that it complains about undefined variables. To fix it, set all types to `object` in non-`TYPE_CHECKING` mode. diff --git a/mypy_boto3_builder/templates/types-boto3/setup.py.jinja2 b/mypy_boto3_builder/templates/types-boto3/setup.py.jinja2 index 850b577b7..4c2ec615e 100644 --- a/mypy_boto3_builder/templates/types-boto3/setup.py.jinja2 +++ b/mypy_boto3_builder/templates/types-boto3/setup.py.jinja2 @@ -26,7 +26,7 @@ setup( {{ "\n " -}}"{{ classifier -}}", {%- endfor %} ], - keywords='boto3 type-annotations boto3-stubs mypy typeshed autocomplete', + keywords='{{ package.library_name }} {{ package.library_name }}-stubs type-annotations typeshed autocomplete', long_description=LONG_DESCRIPTION, long_description_content_type="text/markdown", package_data={"{{ package.name }}": ["py.typed", "*.pyi", "*/*.pyi"]}, diff --git a/pyproject.toml b/pyproject.toml index d6ba5bab0..d7739ef03 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ name = "mypy-boto3-builder" version = "8.4.1" requires-python = ">=3.12" -description = "Builder for boto3-stubs and types-aiobotocore" +description = "Type annotations generator for types-boto3, boto3-stubs, types-aiobotocore, and types-aioboto3." authors = [{ name = "Vlad Emelianov", email = "vlad.emelianov.nz@gmail.com" }] license = { file = "LICENSE" } readme = "README.md"