{"categories":[{"label":"Python Modules","url":"https://skillfed.io/packages/category/software-development-libraries-python-modules/13"}],"enrichment":{"capability":"Waiter provides iteration-based retry and polling with customizable delay strategies, decoupling timing logic from application code through composable delay objects rather than decorators.","skillfed_tags":["retry-polling","async-support","backoff-strategies"],"use_cases":["Retrying flaky API calls with exponential backoff and jitter to avoid thundering herd.","Polling an external service until a condition is met, with a timeout to prevent infinite loops.","Throttling iteration over results from a generator with configurable delays between items.","Testing code that depends on eventual consistency by polling a predicate until it succeeds.","Implementing circuit-breaker patterns with custom delay sequences that escalate over time."],"what_it_does":"Waiter is a retry and polling library that replaces decorator-based approaches with iteration. Instead of wrapping functions with retry decorators, you create a delay object (e.g., `wait(1)` for constant 1-second delays, or `wait(1) * 2` for exponential backoff) and iterate over it in a loop. Each iteration yields the elapsed time and sleeps as needed before the next attempt. The library supports common delay strategies like incremental backoff, Fibonacci, polynomial, and exponential sequences, all composable through operator overloading.\n\nWaiter decouples delay algorithms from your application logic, making it easier to customize retry behavior per call site and to handle different exceptions or results with custom logic. It includes functional methods like `retry()`, `poll()`, and `repeat()` for common patterns, plus async support for coroutine-based retries. The iteration-based design means you control the loop body entirely\u2014logging, exception handling, and early exit are all straightforward.","worth_installing":"Yes. Waiter is actively maintained, has no dependencies, supports current Python versions, carries a permissive license, and solves a real problem\u2014retry/polling logic\u2014in a cleaner, more flexible way than decorator-based alternatives. The iteration model is genuinely easier to reason about and customize. No known vulnerabilities."},"id":"waiter","links":{"html":"https://skillfed.io/packages/waiter","md":"https://skillfed.io/packages/waiter.md","pypi":"https://pypi.org/project/waiter/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-07-26","license_spdx":"Apache-2.0","license_treatment":"permissive","name":"waiter","python_support":"supports_current","summary":"Delayed iteration for polling and retries."},"popularity":{"monthly_downloads":339282,"position":7427,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"1.6"}
