Busypie is a Python library for expressive busy-waiting, primarily used in integration and end-to-end tests to await conditions. It provides a fluent API for defining timeouts, retry intervals, and custom error messages. The current version is 0.6.1, with a release cadence that has seen several updates in the past year.
pip install busypieVerified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates basic busy-waiting using `wait().until()` and handling `ConditionTimeoutError`. It also shows the usage of `at_most()` for maximum wait time, `poll_interval()` for checking frequency, and `at_least()` for specifying a minimum duration a condition must be met for (introduced in v0.6.0).
Upgrade your Python environment to 3.8 or higher, or pin busypie to a version prior to 0.6.0 (e.g., `busypie==0.5.1`).
Remove access to the `description` attribute from `ConditionTimeoutError` instances. Custom descriptions for conditions can be passed directly to `until()` methods if needed.
Understand that `at_least()` imposes a *minimum required time* for the condition to be true. If you only need to wait until a condition is true, omit `at_least()`. Use `at_least()` only when verifying that a process or state change takes a certain amount of time.
Ensure you are using `busypie` version 0.4.5 or newer if you intend to perform nested `wait().until()` calls.
Run `pip install busypie` to install the library.
Increase the timeout using `wait().at_most(Y_seconds)` or investigate why your condition is not becoming true (e.g., service not starting, asynchronous operation not completing).
Update your exception handling logic to no longer rely on the `description` attribute. If you need custom messages, include them in the exception message or use alternative methods for condition description.
Adjust the `at_least()` duration to match the actual minimum time your condition should be true, or remove `at_least()` if you only need the condition to eventually become true, regardless of how long it took.
No dependency data recorded yet.