Can you tell me exactly where in the code the duplication is happening WRT Protocols, so I can try to piece together some understanding and look into fixing it? I'm looking myself but it's not immediately obvious, and I'm unfamiliar with the codebase.
Just to set realistic expectations: it is unlikely anyone beyond core team can fix this. But anyway, the problematic logic duplication is between is_protocol_implementation()/find_member() in subtypes.py and analyze_instance_member_access() in checkmember.py.
Activity
bryanforbes commented on Jan 30, 2019
This will be fixed when #3832 is complete
ilevkivskyi commented on Dec 19, 2019
This appeared again in dropbox/sqlalchemy-stubs#134
ckarnell commented on Dec 20, 2019
Can you tell me exactly where in the code the duplication is happening WRT Protocols, so I can try to piece together some understanding and look into fixing it? I'm looking myself but it's not immediately obvious, and I'm unfamiliar with the codebase.
ilevkivskyi commented on Dec 20, 2019
Just to set realistic expectations: it is unlikely anyone beyond core team can fix this. But anyway, the problematic logic duplication is between is_protocol_implementation()/find_member() in subtypes.py and analyze_instance_member_access() in checkmember.py.
ckarnell commented on Dec 21, 2019
Got it, makes sense. I might take a peek anyway just out of curiosity.
sobolevn commented on Jun 23, 2021
This was raised once again in django-stubs repo: typeddjango/django-stubs#651
Use checkmember.py to check protocol subtyping (python#18943)
Use checkmember.py to check protocol subtyping (python#18943)