dry-python / dry-python/returns
Consider adding LazyIO and friends
- Vorherrschende Sprache
- Python
- Sterne
- 4.4k
- Forks
- 155
- Ø Merge
- 2 Std. 27 Min.
- Gemergte PRs (30 T.)
- 22
Beschreibung
The thing about `IO` in multiple languages / libraries is that it is lazy.
Our `IO` is not lazy by design. It is done, so Python developers can use it like so: `impure(print)(1) # prints "1"`
But, we also need to think about other problems as well:
1. Retries, with proper lazy `IO` one can retry an operation as many times as one wishes: `p = impure_lazy(print)(1); p(); p() # prints "1" twice`
2. Semantical identity to `Future`, currently it is not similar to regular `IO`, because `Future`s are lazy: they don't run until they are executed properly
3. New users will find the similar data-type they already know from other languages / libraries
Beitragsleitfaden
Rechercherichtung
Beginne damit, die vorhandenen Implementierungen von IO und Future sowie die impure API zu lesen; im Issue werden keine bestimmten Dateien genannt. Vergleiche ihr Auswertungsverhalten und definiere anschließend die vorgesehene LazyIO API einschließlich der Retry-Semantik und der Interaktion mit Future. Als abgeschlossen gilt die Aufgabe, wenn ein abgestimmtes Design und Tests vorhanden sind, die verzögerte Ausführung und wiederholte Aufrufe demonstrieren.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- backend
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100