Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

retry_ops-0.1.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file retry_ops-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: retry_ops-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.10

File hashes

Hashes for retry_ops-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ec957723f0813ba4c9bebcb77ac716d22812048f33448c38d31cfbb432eaacf
MD5 b86bbf0780a6ae41bd59cdfcbaad4a4d
BLAKE2b-256 dfa1fc5702ec03d626ad3213cd0ceb30a793fb4a7e2184e217647fb426e2f215

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page