Skip to main content

No project description provided

Project description

retimer

A simple package to make retry loops easier

PyPI version Build status GitHub stars Support Python versions

Getting started

You can get retimer from PyPI, which means it's easily installable with pip:

python -m pip install retimer

Example usage

Think of a scenario where you need to keep trying to do something for a range of time, usually you can write this:

from time import perfcounter

timeout = 10
begin = perfcounter()
while percounter() - begin < timeout:
     # do something for 10 seconds
     
     if retry_doing_something:
         time.sleep(.5)
         continue
         
     if something_bad:
         break
         
     # all good
     break
     
if perfcounter - begin >= timeout:
    print(f"Could not do something after {timeout} seconds")
else:
    print("Success!")

Rewriting using this package becomes:

from retimer import Timer
import time

timer = Timer(10)
while timer.not_expired:
    # do something for 10 seconds
    
    if retry_doing_something:
        time.sleep(.5)
        continue
        
    if something_bad:
        timer.explode()
    
    # all good
    break
    
if timer.expired:
    print(f"Could not do something after {timer.duration} seconds")
else:
    print("Success!")
    

Although both codes accomplish the same result, I personally find the second one more readable and shines when I need two or more chained loops

Changelog

Refer to the CHANGELOG.md file.

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

retimer-0.1.0.9.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

retimer-0.1.0.9-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

Details for the file retimer-0.1.0.9.tar.gz.

File metadata

  • Download URL: retimer-0.1.0.9.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.11.1 Linux/5.15.0-1024-azure

File hashes

Hashes for retimer-0.1.0.9.tar.gz
Algorithm Hash digest
SHA256 82d500849f54e081cf5917097a19d97dcc8ff90552bdc981ec3c8aeb210031cb
MD5 898957426807ea8fa87b875e4f8c5e3f
BLAKE2b-256 2d175078a3914f3211e235a4c545423d05092342902590ecf251c205a766863b

See more details on using hashes here.

File details

Details for the file retimer-0.1.0.9-py3-none-any.whl.

File metadata

  • Download URL: retimer-0.1.0.9-py3-none-any.whl
  • Upload date:
  • Size: 3.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.11.1 Linux/5.15.0-1024-azure

File hashes

Hashes for retimer-0.1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 1f9465b9a99a68e453e028559081b0f2bd935317e49423d58e02f8ab86ba487d
MD5 445a9ed66d2ebe3d325a68f61f20eee3
BLAKE2b-256 edce65e8f639f1ba65d5a8e0997a5b57e726355a743e7b6d89ee863424261d80

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