python / python/typing_extensions
Multiple inheritance and ReadOnly issues?
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 583
- Fork
- 146
- Merge medio
- 10h 11m
- PR unite (30g)
- 5
Descrizione
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'}
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Esegui il reproducer fornito con typing-extensions 4.9.0-rc1 su Python 3.10.1 e confronta ogni insieme di chiavi riportato con le asserzioni previste. Traccia la gestione dell’ereditarietà multipla di TypedDict per Required, NotRequired e ReadOnly, quindi aggiungi una copertura di regressione che dimostri che tutte le asserzioni passano.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- tooling
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100