Open
Description
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'}
Metadata
Metadata
Assignees
Labels
No labels