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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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