{"library":"mypy-boto3-greengrass","title":"mypy-boto3-greengrass Type Stubs","description":"mypy-boto3-greengrass provides comprehensive type annotations for the boto3 Greengrass client, service resource, paginators, and waiters. It enables static type checking for AWS Greengrass operations using mypy, enhancing code reliability and developer experience. The library is currently at version 1.42.3, generated with mypy-boto3-builder 8.12.0, and follows the boto3 release cadence for updates.","language":"python","status":"active","last_verified":"Thu May 14","install":{"commands":["pip install boto3 mypy mypy-boto3-greengrass","pip install 'boto3-stubs[greengrass]' mypy"],"cli":null},"imports":["from mypy_boto3_greengrass.client import GreengrassClient","from mypy_boto3_greengrass.type_defs import GetCoreDefinitionResponseTypeDef","from mypy_boto3_greengrass.service_resource import GreengrassServiceResource"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import boto3\nimport os\nfrom typing import TYPE_CHECKING, Dict, Any\n\n# Conditional import for type checking only to avoid runtime dependency\n# if mypy-boto3-greengrass is not installed in production environments.\nif TYPE_CHECKING:\n    from mypy_boto3_greengrass.client import GreengrassClient\n    from mypy_boto3_greengrass.type_defs import GetCoreDefinitionResponseTypeDef\n\ndef get_core_definition_name(core_definition_id: str) -> str:\n    \"\"\"\n    Retrieves the name of a Greengrass core definition using type-hinted boto3.\n    Type annotations ensure static analysis correctness.\n    \"\"\"\n    # Initialize boto3 client. mypy-boto3 provides stubs for its methods.\n    client = boto3.client(\"greengrass\", region_name=os.environ.get(\"AWS_REGION\", \"us-east-1\"))\n\n    # Asserting the client type for static analysis with mypy.\n    # At runtime, 'client' is a regular boto3 client.\n    if TYPE_CHECKING:\n        greengrass_client: GreengrassClient = client\n        response: GetCoreDefinitionResponseTypeDef = greengrass_client.get_core_definition(\n            CoreDefinitionId=core_definition_id\n        )\n    else:\n        # Runtime execution uses the actual boto3 client without explicit type assertion.\n        # This branch is taken if TYPE_CHECKING is False (e.g., in production).\n        response = client.get_core_definition(CoreDefinitionId=core_definition_id)\n    \n    # Mypy will now correctly check access to 'Name' and its type\n    return response['Name']\n\nif __name__ == \"__main__\":\n    # For this to make actual AWS calls, ensure AWS_ACCESS_KEY_ID,\n    # AWS_SECRET_ACCESS_KEY (and optionally AWS_REGION) are set in your environment.\n    # Otherwise, it will attempt a call that might fail with an AWS error.\n\n    print(\"Note: This example requires AWS credentials for live execution.\")\n    print(\"   To run 'mypy' on this file, ensure 'mypy boto3 mypy-boto3-greengrass' are installed.\")\n    print(\"   Example: 'mypy your_script_name.py'\")\n\n    example_core_id = \"your-greengrass-core-definition-id\"\n\n    if os.environ.get(\"AWS_ACCESS_KEY_ID\") and os.environ.get(\"AWS_SECRET_ACCESS_KEY\"):\n        print(f\"\\nAttempting to get Greengrass Core Definition name for ID: {example_core_id}\")\n        try:\n            core_name = get_core_definition_name(example_core_id)\n            print(f\"Retrieved Core Definition Name: {core_name}\")\n        except Exception as e:\n            print(f\"An error occurred during AWS call: {e}\")\n            print(\"Please ensure the Core Definition ID is valid and credentials are correct.\")\n    else:\n        print(\"\\nAWS credentials not found. Skipping live AWS call.\")\n        print(\"To test type-checking, you can run 'mypy' on this file without credentials.\")\n","lang":"python","description":"This quickstart demonstrates how to use `mypy-boto3-greengrass` for type hinting your `boto3` Greengrass client. It highlights the use of `TYPE_CHECKING` for conditional imports, ensuring the stubs are only used during static analysis. When `mypy` processes this code, it uses `GreengrassClient` and `GetCoreDefinitionResponseTypeDef` to validate client methods and response structures. At runtime, the standard `boto3` client is used.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-14","installed_version":"1.43.0","pypi_latest":"1.43.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":75,"avg_install_s":6.5,"avg_import_s":0.73,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"greengrass","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"84.0M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"greengrass","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"boto3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.63,"mem_mb":14.1,"disk_size":"115.1M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"boto3","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.73,"mem_mb":13.9,"disk_size":"110.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"greengrass","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":9.6,"import_time_s":null,"mem_mb":null,"disk_size":"83M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"greengrass","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"boto3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.2,"import_time_s":0.47,"mem_mb":14.1,"disk_size":"114M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"boto3","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.62,"mem_mb":13.9,"disk_size":"109M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"greengrass","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"89.0M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"greengrass","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"boto3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.81,"mem_mb":15.7,"disk_size":"121.2M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"boto3","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.32,"mem_mb":15.6,"disk_size":"116.2M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"greengrass","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":5.6,"import_time_s":null,"mem_mb":null,"disk_size":"88M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"greengrass","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"boto3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.8,"import_time_s":0.76,"mem_mb":15.7,"disk_size":"120M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"boto3","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.93,"mem_mb":15.6,"disk_size":"115M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"greengrass","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"80.9M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"greengrass","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"boto3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.67,"mem_mb":14.9,"disk_size":"112.9M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"boto3","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.78,"mem_mb":14.8,"disk_size":"107.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"greengrass","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":4.7,"import_time_s":null,"mem_mb":null,"disk_size":"80M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"greengrass","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"boto3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.1,"import_time_s":0.73,"mem_mb":14.9,"disk_size":"112M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"boto3","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.96,"mem_mb":14.8,"disk_size":"107M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"greengrass","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"80.8M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"greengrass","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"boto3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.66,"mem_mb":16,"disk_size":"112.8M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"boto3","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.72,"mem_mb":15.9,"disk_size":"107.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"greengrass","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":4.3,"import_time_s":null,"mem_mb":null,"disk_size":"80M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"greengrass","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"boto3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.1,"import_time_s":0.66,"mem_mb":16,"disk_size":"112M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"boto3","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.95,"mem_mb":15.9,"disk_size":"107M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"greengrass","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"75.6M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"greengrass","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"boto3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.45,"mem_mb":13.1,"disk_size":"106.6M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"boto3","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.81,"mem_mb":13.1,"disk_size":"105.9M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"greengrass","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":11,"import_time_s":null,"mem_mb":null,"disk_size":"75M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"greengrass","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"boto3","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.1,"import_time_s":0.51,"mem_mb":13.1,"disk_size":"106M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"boto3","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.48,"mem_mb":13.1,"disk_size":"105M"}]}}