A Python library providing retry decorators.
Project description
retry-ops
retry_ops is a Python library designed to simplify the creation of retry decorators. With retry_ops, you can effortlessly add retry logic to your functions, helping them handle transient errors more gracefully.
Features
- Easy to use: Apply retry logic with minimal code changes.
- Configurable: Customize the number of retries, delay between retries, and more.
- Flexible: Use with any Python function.
pip install retry-ops
Usage
To use retry_ops, you simply need to import it and apply the retry decorator to the function you want to wrap. Here is an example:
from retry_ops import retry, silent_retry_with_default
# Simple usage with default settings
@retry
def my_function():
# Function logic that may fail
print("Attempting the operation...")
raise ValueError("An error occurred!")
# Customizing the retry logic
@retry(retries=5, retry_delay=2, exceptions=(IOError, ), error_message="Custom error message")
def my_other_function():
# Function logic that may fail
print("Attempting another operation...")
raise IOError("Another error occurred!")
# Using the silent retry decorator
@silent_retry_with_default(default_return_value=-1, retries=5, retry_delay=3, exceptions=(RuntimeError,), error_message="Operation failed after retries")
def my_silent_function():
# Function logic that may fail
print("Attempting the silent operation...")
raise RuntimeError("A runtime error occurred!")
Parameters
The @retry
decorator accepts the following parameters:
- retries (int): The maximum number of retry attempts. Default is
3
. - retry_delay (int or float): The delay (in seconds) between retry attempts. Default is
2
. - exceptions (tuple): A tuple of exception classes that will trigger a retry. Default is
(Exception,)
. - error_message (str): The error message to be raised when the retry attempts are exceeded. Default is
"Max retries exceeded"
.
The @silent_retry_with_default
decorator accepts the following parameters:
- default_return_value (any): The value to return if the retries are exceeded. Default is
None
. - retries (int): The maximum number of retry attempts. Default is
3
. - retry_delay (int or float): The delay (in seconds) between retry attempts. Default is
2
. - exceptions (tuple): A tuple of exception classes that will trigger a retry. Default is
(Exception,)
. - error_message (str): The error message to be logged when the retry attempts are exceeded. Default is
"Max retries exceeded"
.
Contributing
We welcome contributions! Please submit a pull request or open an issue to help improve retry_ops.
License
This project is licensed under the MIT License. See the LICENSE file for more details.
Acknowledgements
This library was inspired by the need for simple and configurable retry logic in Python functions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file retry_ops-0.2.0.tar.gz
.
File metadata
- Download URL: retry_ops-0.2.0.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 742269623a274591c21dc8ae8023891acb9c67ca2cd2475728fd634ae86bf0de |
|
MD5 | f5f78cef36dc1c917b6840c4abfada2c |
|
BLAKE2b-256 | ccfec845054dbb6ee5fd7a38c43d94af0345ae5154b6131c807b0333bcead9e0 |
File details
Details for the file retry_ops-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: retry_ops-0.2.0-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ab334be6f565ca55b6d076ac19d82c2274b84e1c7dd81f8b0f03799090b30c2 |
|
MD5 | bd15a8c45643d667e8c34de88930dbe8 |
|
BLAKE2b-256 | 9d786a1e56bb67121c94da840f0804d45403e818eaa19d7863571912e370b8e0 |