Description
Reported in another issue
I am also experiencing the interface issues described above. We're looking to adopt the CDK for our main platform and as a mostly Python/C++ shop the Python CDK seemed like a great choice for us. I didn't make it very far into my first sample app to test things out before mypy started throwing errors.
from aws_cdk.core import Construct, Stack from aws_cdk import aws_ec2 as ec2 class MyEC2Stack(Stack): def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) ec2.Instance(self, 'my-app', instance_type=ec2.InstanceType('m5.4xlarge'), machine_image=ec2.MachineImage.generic_linux({ 'us-east-1': 'ami-0affd4508a5d2481b', # CentOS 7 (x86_64) - with Updates HVM }), vpc=ec2.Vpc(self, "my-app-vpc"))
I would love to see this fixed so we can start building out our application stack with confidence that we're passing the right level of constructs around!Is this still a problem today? I have been trying to reproduce this (with CDK v2, though), and am not getting the MyPy error you report here... if you still happen to have the error, maybe this is because of your specific MyMy version or configuration (in which case, I would like to know what these are so I can reproduce).
Indeed it is still a problem. For example try loading up apigw-http-api-lambda-dynamodb-python-cdk in vscode, then pyright reports for
# Create the Lambda function to receive the request
api_hanlder = lambda_.Function(
...
)
...
# Create API Gateway
apigw_.LambdaRestApi(
...
handler=api_hanlder, # Pyright error: Argument of type "Function" cannot be assigned to parameter "handler" of type "IFunction"
)
typecheck error
Argument of type "Function" cannot be assigned to parameter "handler" of type "IFunction" in function "__init__"
"Function" is incompatible with protocol "IFunction"
"IFunction" is incompatible with "Function"
"IFunction" is incompatible with "Function"
"IFunction" is incompatible with "Function"
"IFunction" is incompatible with "Function"
"IFunction" is incompatible with "Function"
"IFunction" is incompatible with "Function"
"IFunction" is incompatible with "Function"Pylance[reportArgumentType](https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportArgumentType)
(variable) api_hanlder: Function
as shown in this screenshot
That project uses aws-cdk-lib==2.77.0 however the same issue exists after updating to recent aws-cdk-lib==2.143.1. On my machine it happens with the following configuration
pyright 1.1.364
pylance 2024.5.103
aws-cdk-lib 2.143.1
python 3.11.2
vscode 1.89.1
Originally posted by @mariogalic in #1919 (comment)