Typeclasses with several methods
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Es werden keine Dateien, Tests oder Einstiegspunkte genannt. Beginne damit nachzuverfolgen, wie der aktuelle typeclass-Mechanismus Implementierungen darstellt und bindet, und bestimme dann, wie ein Python Protocol mit mehreren Methoden, einschließlich der classmethod, unterstützt werden sollte. Als abgeschlossen gilt die Aufgabe, wenn die vorgeschlagene Functor-Form funktioniert und ihre Implementierungsbindung definiert und durch Tests abgedeckt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
There's a common use-case when we need to create a type-class with several methods. Like:
class Functor(Protocol[T]):
def map(self, function: Callable[[T], Functor[V]]) -> Functor[V]:
...
@classmethod
def from_value(cls, inner_value: V) -> Functor[V]:
...
Currently, there's no way we can do that.
I propose something like this:
@typeclass
class Functor(Protocol[T]):
def map(self, function: Callable[[T], Functor[V]]) -> Functor[V]:
...
@classmethod
def from_value(cls, inner_value: V) -> Functor[V]:
...
I am not sure how to bound it to the actual implementation.
- 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
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
canonical/paas-charm#368 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
tech debt
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
StevenBlack/hosts#3256 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
qualcomm/qai-appbuilder#275 ·