Replace AbstractDiagnostic with Diagnostic as the single diagnostic contract
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- Mezza giornata
- Idoneità per principianti
- 45/100
Direzione di ricerca
Start by comparing the AbstractDiagnostic Protocol with the concrete Diagnostic class in climate_ref_core/diagnostics.py (the protocol is near line 492), then check how DiagnosticProvider.register in providers.py (around line 173) type-checks its argument. Search the repo for remaining AbstractDiagnostic references and retype them to Diagnostic. The issue leaves open whether to delete the protocol or keep it as a deprecated alias for one release, so confirm that choice with maintainers first. Done means the references are updated and the test suite and type checks pass.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
AbstractDiagnostic (climate_ref_core/diagnostics.py:492) is a @runtime_checkable Protocol, but isn't really used. DiagnosticProvider.register requires an instance of the concrete Diagnostic class (providers.py:173), so nothing can satisfy AbstractDiagnostic without subclassing Diagnostic anyway.
The two have also drifted. Diagnostic defines version, files and reconstruction_inputs with defaults, and AbstractDiagnostic lists none of them, so code typed against the protocol cannot rely on them.
We should:
- Make
Diagnosticthe single documented contract for new diagnostics. - Remove
AbstractDiagnostic, or keep it as a deprecated alias ofDiagnosticfor one release. - Retype internal uses of
AbstractDiagnostictoDiagnostic.
New attributes then go on Diagnostic with a default, which keeps existing diagnostics working, as DiagnosticProvider already does with its hooks. Using an base class makes it easier avoid making breaking changes from a new attribute
- Lingua principale
- Python
- Stelle
- 27
- Fork
- 14
- Merge medio
- 1g 2h
- PR unite (30g)
- 75
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi 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.
Altre issue di Climate-REF/climate-ref
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Climate-REF/climate-ref#701 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Climate-REF/climate-ref#442 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
Climate-REF/climate-ref#1040 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Climate-REF/climate-ref#996 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
Climate-REF/climate-ref#991 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Climate-REF/climate-ref
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 69/100
jejjohnson/gaussx#752 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
521xueweihan/HelloGitHub#4270 ·
-
enhancement owner: den-haag
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 6 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
ok-oldking/ok-wuthering-waves#1828 ·
I maintainer di solito rispondono entro 1 giorno
-
lesson-submission pending-review
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
Ikalus1988/MisakaNet#4512 ·
I maintainer di solito rispondono entro 1 giorno