python / python/typing_extensions
Multiple inheritance and ReadOnly issues?
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 583
- Forks
- 146
- Ø Merge
- 10 Std. 11 Min.
- Gemergte PRs (30 T.)
- 5
Beschreibung
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'}
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Führe den bereitgestellten Reproducer mit typing-extensions 4.9.0-rc1 unter Python 3.10.1 aus und vergleiche jedes gemeldete Schlüsselset mit den erwarteten Assertions. Verfolge die Behandlung der Mehrfachvererbung von TypedDict für Required, NotRequired und ReadOnly und füge eine Regressionstestabdeckung hinzu, die zeigt, dass alle Assertions bestehen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100