This release is a pre-release and may not be stable for production use.
This package is intended to provide decorators which execute custom actions in case of exceptions. Let’s see an example:
First we need an object with some methods. These methods we decorate with the PrintOnFailure-decorator. This simple example decorator prints a given message in case of an exception.
>>> from failureaction import ConflictError >>> from failureaction import PrintOnFailure >>> class TestOb(object): ... ... @PrintOnFailure(msg='Some numeric calculation went wrong!') ... def divide(self, a, b): ... return a/b ... ... @PrintOnFailure() ... def doraise(self): ... raise ConflictError
We have two methods. One (divide) does numerical division of two numbers and another raises a custom defined ConflictError. Now let’s see the methods in action:
>>> ob = TestOb() >>> ob.divide(4, 2) 2>>> ob.divide(42, 0) Some numeric calculation went wrong!>>> ob.doraise() Traceback (most recent call last): ... ConflictError
The ActionOnFailure decorator provided by the module is intended to be overriden by a custom class. Like this:
>>> from failureaction import ActionOnFailure >>> class MailOnFailure(ActionOnFailure): ... ... def __init__(self, subject): ... self.subject = subject ... ... def _doaction(self, context, e): ... """ send a mail, if an exception was raised """ ... print "Subject:", self.subject ... print e>>> class TestOb2(object): ... ... @MailOnFailure(subject='An error occured') ... def critical(self): ... import _not_existent_hopefully_>>> ob2 = TestOb2() >>> ob2.critical() Subject: An error occured No module named _not_existent_hopefully_
Release files for failureaction 1.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| failureaction-1.0a1.tar.gz | 2.4 kB | Details |
Release files / failureaction-1.0a1.tar.gz
| Download URL | failureaction-1.0a1.tar.gz |
|---|---|
| Size | 2.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9f2124e2005b2207c53fccae496d733d28531e01920e584e6d7a2c9e2e656551
|
|
BLAKE2b-256 checksum How to use checksums |
dbee82e13857d151d2a02ee22c3805e8ae4b6b6f66de91be7dcf2d8c2becef90
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |