Skip to content

Multiple inheritance and ReadOnly issues? #308

Open
@alicederyn

Description

@alicederyn

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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions