Skip to main content

A Python library providing retry decorators.

Project description

🐍 Unit Tests 🚦 PyPI - License Downloads

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 Distribution

retry_ops-0.2.0.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

retry_ops-0.2.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

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

Hashes for retry_ops-0.2.0.tar.gz
Algorithm Hash digest
SHA256 742269623a274591c21dc8ae8023891acb9c67ca2cd2475728fd634ae86bf0de
MD5 f5f78cef36dc1c917b6840c4abfada2c
BLAKE2b-256 ccfec845054dbb6ee5fd7a38c43d94af0345ae5154b6131c807b0333bcead9e0

See more details on using hashes here.

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

Hashes for retry_ops-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8ab334be6f565ca55b6d076ac19d82c2274b84e1c7dd81f8b0f03799090b30c2
MD5 bd15a8c45643d667e8c34de88930dbe8
BLAKE2b-256 9d786a1e56bb67121c94da840f0804d45403e818eaa19d7863571912e370b8e0

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