Support `Any` as an alias for `object` to describe a default typeclass implementation
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 38/100
Rechercherichtung
Das Issue nennt keine Implementierungsdateien oder Tests. Beginne damit, die Verarbeitung hinter @render.instance(object) und die vorhandenen Tests für Typeclass-Instanzen zu finden, und verfolge dann, wie der object-Default erkannt wird. Als erledigt gilt, dass @render.instance(Any) sich äquivalent zu @render.instance(object) verhält, während das Beispiel die Fallback-Implementierung verwendet.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Context. In order to define a default implementation (the one used if no other implementation matches), we currently have to write something like this:
from classes import typeclass
@typeclass
def render(data_value) -> str:
"""Render a data value nicely."""
@render.instance(int)
def _render_int(data_value: int) -> str:
return f'This is an integer: {data_value}'
@render.instance(object)
def _render_int(data_value: object) -> str:
return f'No idea what this is: {data_value}'
assert render('BADOOM') == 'No idea what this is: BADOOM'
(this script should be runnable as-is.)
Decision. Support Any as a special case to replace object:
@render.instance(Any)
def _render_int(data_value: Any) -> str: # type: ignore
return f'No idea what this is: {data_value}'
Consequences.
- Pro: The code will look a little bit more straightforward;
- Contra:
mypywith common settings might be unhappy aboutAnybeing used, but that can be silenced withtype: ignoreI suppose.
- Vorherrschende Sprache
- Python
- Sterne
- 730
- Forks
- 30
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus dry-python/classes
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
dry-python/classes#496 ·
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 45/100
dry-python/classes#494 ·
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 52/100
dry-python/classes#492 · 2 Kommentare ·
-
bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
dry-python/classes#481 · 5 Kommentare · 4 Reaktionen ·
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 35/100
dry-python/classes#386 ·
Alle Issues in dry-python/classes
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
anthropics/skills#1811 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
speaches-ai/speaches#678 ·
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
datalayer/mcp-compose#42 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
conda-forge/spacy-feedstock#177 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
UKGovernmentBEIS/inspect_evals#2523 ·