**Installation**
To install Tenacity, you have two options depending on your Python environment.
**Using pip**
If you are using pip as your package manager, you can install Tenacity by running the following command in your terminal:
“`
python -m pip install tenacity
“`
**Using Anaconda**
If you are using Anaconda, Tenacity is not available in the default channel. However, you can install it from the conda-forge channel using the following command:
“`
conda install -c conda-forge tenacity
“`
**Basic Usage**
Once you have installed Tenacity, you can start using it in your code. This section will cover some basic usage examples of the library.
**Adding Retry Capabilities**
To add retry capabilities to your code, you can simply decorate your function with the `@retry` decorator. This will automatically retry the function if it fails. Here’s an example:
“`python
@retry
async def coro_func():
# Your code here
pass
“`
**Setting Maximum Number of Retries**
If you want to limit the number of retries, you can specify the maximum number of attempts using the `stop` parameter. For example, if you want to stop retrying after 5 attempts, you can use the following code:
“`python
@retry(stop=stop_after_attempt(5))
async def coro_func():
# Your code here
pass
“`
**Adding Waiting Time**
To avoid frequent retries that may exhaust connection pools, it is recommended to add a waiting time before each retry. You can do this by using the `wait` parameter. For instance, if you want to wait for 2 seconds before each connection, you can use the following code:
“`python
@retry(wait=wait_fixed(2))
async def coro_func():
# Your code here
pass
“`
**Incremental Waiting Time**
To minimize resource waste, it is a good practice to wait an extra second longer than the previous waiting time before each retry. You can achieve this by using the `wait_incrementing` function. Here’s an example:
“`python
@retry(wait=wait_incrementing(start=1, increment=1, max=5))
async def coro_func():
# Your code here
pass
“`
**Raising Exceptions**
By default, when a retry is triggered by an exception, Tenacity will swallow the exception and retry the function. However, if you want to handle the exception externally, you can use the `reraise` parameter. This will re-raise the exception after the maximum number of attempts is reached. Here’s an example:
“`python
@retry(reraise=True, stop=stop_after_attempt(3))
async def coro_func():
# Your code here
pass
“`
**Conclusion**
In this article, we have covered the installation process of Tenacity and explored some basic usage examples. By using the `@retry` decorator and various parameters, you can add retry capabilities, set maximum number of retries, add waiting time, and handle exceptions effectively. Tenacity is a powerful library that can greatly enhance the robustness and reliability of your code.
GIPHY App Key not set. Please check settings