pynamodb / PynamoDB

A pythonic interface to Amazon's DynamoDB
http://pynamodb.readthedocs.io
MIT License
2.44k stars 427 forks source link

`ListAttribute(of=UnicodeAttribute)` is not compatible with `List[str]` #1246

Open james10424 opened 4 months ago

james10424 commented 4 months ago

They should be equivalent, but mypy/pylance did not agree with this.

To reproduce:

This seems to be an issue with ListAttribute not properly extracting types, to add to this, consider the following:

the_first_thing: str = model.thing[0] This will cause "UnicodeAttribute" is incompatible with "str"

However, if the attribute is only UnicodeAttribute, then it will be recognized as str when assigned to a variable.

james10424 commented 4 months ago

Similarly, when trying to set the array, the same type error is raised.

Argument of type "list[str]" cannot be assigned to parameter "value" of type "List[UnicodeAttribute] | Attribute[List[UnicodeAttribute]]......