qaviton handlers
Project description
Qaviton Handlers
error handling utilities
Installation
pip install --upgrade qaviton_handlers
Requirements
- Python 3.6+
Features
- retry decorator ✓
- retry with context ✓
- try functions ✓
- catch errors ✓
- simple Exception wrapper ✓
Usage
retry decorator
from qaviton_handlers.try_decorator import retry
@retry()
def foo():
n = int('1'+input('select number:'))
print(n)
foo()
retry with context
from qaviton_handlers.try_context import retry
with retry() as trying:
while trying:
with trying:
print("Attempt #%d of %d" % (trying.attempt, trying.attempts))
raise
using different try wrapper functions
from qaviton_handlers.try_functions import try_to, try_or_none, multi_try, multi_try_no_break
def foo(a=0):
print(float(a+input("select number:")))
# simply try
try_to(foo, 1)
try_to(foo, 2)
try_to(foo, 3)
# get the error
error = try_to(foo, 4)
if error: print(error)
# if error occurred
if try_to(foo, 5):
try_to(foo, 5)
# try to get a number
number = try_or_none(lambda a:float(a+input("select number:")), 6)
if number: print(number)
# try many functions, return a list of results, or an error
# if an error occurred, the multi try stops
multi_try(
foo,
foo,
foo,
lambda: foo(7),
lambda: foo(7),
lambda: foo(7),
)
# try many functions, return a list of results, some may be errors
# if an error occurred, the multi try continues
multi_try_no_break(
lambda: foo(8),
lambda: foo(9),
lambda: foo(0),
)
ignore errors now so you can handle them later
from qaviton_handlers.catch import Catch
catch = Catch()
try:
1+'1'
except Exception as e:
catch(e)
with catch:
1+'1'
2+'2'
print(f"caught {catch.count} errors")
print(f"caught first {catch.first}")
print(f"caught last {catch.last}")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for qaviton_handlers-2019.9.29.6.22.10.839064.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbb0f6e9bf2a46a1ec980d1bf3dc62b0551c03eeb74ab6aeaa6b5e0280ca623b |
|
MD5 | acd7e146e544eee0667531468d49b94c |
|
BLAKE2b-256 | 316389ea168ed51517152dd288d1d35fec279330cbb51921f643937467ad4d89 |
Close
Hashes for qaviton_handlers-2019.9.29.6.22.10.839064-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0052cfaa25922d5d1bf4cc04c1136dd1b880e4dbf9c0401fe61aded34ff9faf9 |
|
MD5 | c4a88cb697e54aff7d4d76c1017af868 |
|
BLAKE2b-256 | 07b1ad4f237e5abf030944f672682557e7490034cad63494ea08838221df14e6 |