Limit the number of progression conditions signaled
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- r
- Ambito
- developer-experience
Direzione di ricerca
Inizia dal punto di ingresso progressor() e verifica come i controlli interval e times esistenti gestiscono la segnalazione dell’avanzamento. Esamina Issue #74 e gli esempi di loop e map-reduce in questo report per chiarire il comportamento previsto. Il lavoro è completo quando gli aggiornamenti dell’avanzamento possono essere limitati sia per i loop indicizzati sia per le chiamate in stile lapply, con test che coprano l’interfaccia selezionata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
There are already mechanisms for control how frequent handlers report on progress updates (interval and times), but there's no mechanism built-in for controlling how frequently updates are signaled (e.g. Issue #74).
The workaround is for the developer to limit this, e.g.
p <- progressr::progressor(length(x) / 10)
sum <- 0
for (kk in seq_along(x)) {
Sys.sleep(0.1)
sum <- sum + x[kk]
if (kk %% 10 == 0) p(message = sprintf("Added %g", x[kk]))
}
However, when using map-reduce functions (e.g. lapply(X, function(x) { ... }), we don't have access to an index, only the value x.
One solution could be to introduce an every argument to progressor() and then have it skip internally, e.g.:
p <- progressr::progressor(along = x, every = 10L)
sum <- 0
for (kk in seq_along(x)) {
Sys.sleep(0.1)
sum <- sum + x[kk]
p(message = sprintf("Added %g", x[kk]))
}
and
p <- progressr::progressor(along = X, every = 10L)
y <- lapply(X, FUN = function(x) {
p(message = sprintf("Added %g", x[kk]))
Sys.sleep(0.1)
sqrt(x)
})
One can also imagine a (per minute) frequency and (total) times argument.
- Lingua principale
- R
- Stelle
- 299
- Fork
- 11
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
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 futureverse/progressr
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 63/100
futureverse/progressr#198 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
futureverse/progressr#197 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
futureverse/progressr#195 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 28/100
futureverse/progressr#191 ·
-
question
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
futureverse/progressr#155 · 5 commenti ·
Tutte le issue di futureverse/progressr
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 95/100
tidymodels/textrecipes#332 ·
-
benchmark bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 78/100
ThinkR-open/datadiff#59 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno