microsoftgraph / microsoftgraph/msgraph-sdk-python-core
Unclear how to resume iterating with `PageIterator` if the callback returns `False`
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 288
- Forks
- 52
- Merge medio
- 8 h 10 min
- PR fusionados (30 d)
- 1
Descripción
In other SDKs, the iterator class typically has a Resume method to restart the iteration where it left off, and a corresponding State property to check if the iterator has completed or not. For example, in .NET:
var pageIterator = PageIterator<Message, MessageCollectionResponse>
.CreatePageIterator(
graphClient,
messages,
(msg) =>
{
Console.WriteLine(msg.Subject);
count++;
// If we've iterated over the limit,
// stop the iteration by returning false
return count < pauseAfter;
});
await pageIterator.IterateAsync();
while (pageIterator.State != PagingState.Complete)
{
Console.WriteLine("Iteration paused for 5 seconds...");
await Task.Delay(5000);
// Reset count
count = 0;
await pageIterator.ResumeAsync();
}
Is there a way to do this in this SDK?
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza leyendo la implementación de PageIterator y el manejo de sus callbacks; después compara el comportamiento solicitado con el ejemplo de .NET del issue. Determina cómo una iteración pausada podría exponer el estado de finalización y reanudarse desde su posición actual; el trabajo estará terminado cuando el comportamiento del SDK y su uso estén claramente definidos y verificados.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- api
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100