Open alicederyn opened 11 months ago
I believe the following should be a passing test suite for multiple inheritance and ReadOnly:
from typing_extensions import TypedDict, Required, NotRequired, ReadOnly class A(TypedDict): k: ReadOnly[Required[int]] class B(TypedDict): k: ReadOnly[NotRequired[int]] class C(A, B): pass assert C.__required_keys__ == {'k'} assert C.__optional_keys__ == set() class D(B, A): pass assert D.__required_keys__ == {'k'} assert D.__optional_keys__ == set() class E(TypedDict): k: Required[int] class F(A, E): pass assert F.__readonly_keys__ == set() assert F.__mutable_keys__ == {'k'} class G(E, A): pass assert G.__readonly_keys__ == set() assert G.__mutable_keys__ == {'k'}
Unfortunately, with typing-extensions 4.9.0-rc1 in Python 3.10.1, every one of these properties is {'k'}
{'k'}
I'm going to punt on fixing this until after 4.9.0 since it feels fairly obscure.
I believe the following should be a passing test suite for multiple inheritance and ReadOnly:
Unfortunately, with typing-extensions 4.9.0-rc1 in Python 3.10.1, every one of these properties is
{'k'}