Skip to main content

Simple retry cient for aiohttp

Project description

This package is similar to Tornado-retry-client.
Python 3.5+.

Install: pip install aiohttp-retry.

Warning

This current version is 2.0. It hasn’t backward compatibility for previous versions.
You still can use v1.2 (pip install aiohttp-retry==1.2), but it is unsupported.

Examples of usage:

from aiohttp_retry import RetryClient, RetryOptions

async def main():
    retry_options = RetryOptions(attempts=1)
    retry_client = RetryClient(raise_for_status=False, retry_options=retry_options)
    async with retry_client.get('https://ya.ru') as response:
        print(response.status)

    await retry_client.close()
from aiohttp_retry import RetryClient

async def main():
    async with RetryClient() as client:
        async with client.get('https://ya.ru') as response:
            print(response.status)
Look tests for more examples.
Be aware: last request returns as it is.

Documentation

RetryClient takes the same arguments as ClientSession[docs]
RetryClient has methods: - get - options - head - post - put - patch - put - delete

They are same as for ClientSession, but take one possible additional argument:

from typing import Optional, Set, Type

class RetryOptions:
    def __init__(
        self,
        attempts: int = 3,  # How many times we should retry
        start_timeout: float = 0.1,  # Base timeout time, then it exponentially grow
        max_timeout: float = 30.0,  # Max possible timeout between tries
        factor: float = 2.0,  # How much we increase timeout each time
        statuses: Optional[Set[int]] = None,  # On which statuses we should retry
        exceptions: Optional[Set[Type[Exception]]] = None,  # On which exceptions we should retry
    )
    ...

You can specify RetryOptions both for RetryClient and it’s methods. RetryOptions in methods override RetryOptions defined in RetryClient constructor.

Development

Before creating PR please run mypy: mypy -m aiohttp_retry

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

aiohttp_retry-2.0.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiohttp_retry-2.0-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file aiohttp_retry-2.0.tar.gz.

File metadata

  • Download URL: aiohttp_retry-2.0.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.2

File hashes

Hashes for aiohttp_retry-2.0.tar.gz
Algorithm Hash digest
SHA256 dd64475735bfc018a1266c4302a7f360e37b799a77a431d79cc1af18abcd42b3
MD5 03ca55c193ba1aac1f01eae550ba2810
BLAKE2b-256 597e39186a37b1b7794b785b727a7822aa5e8b8f709f2ae0d250210444fe40d5

See more details on using hashes here.

File details

Details for the file aiohttp_retry-2.0-py3-none-any.whl.

File metadata

  • Download URL: aiohttp_retry-2.0-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.9.0

File hashes

Hashes for aiohttp_retry-2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7fcdb7b48ea96012c1f594464f8310d2728844e8930424fc5dfdc1a27802d061
MD5 b17513a6f38dc727027acb4cd8f9bb6d
BLAKE2b-256 b998cc1386ea71374bcb8a9b393396c30e79198132e1672c31f053b86e9bb3e1

See more details on using hashes here.

Supported by

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