dry-python / dry-python/returns

Consider adding LazyIO and friends

Aperta
#525 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Python
Stelle
4.4k
Fork
155
Merge medio
2h 27m
PR unite (30g)
22

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.