Error wrapper with auto logging
Project description
Error Wrapper
Inheritance from the package’s classes allows you to handle errors of any level in a uniform way and automatically log error messages if desired. This is a familiar routine, a fraction of which I wanted to reduce:)
Installation
Install from PyPI with:
pip install error-wrapper
Usage
Completely abstract example:)
logger = logging.getLogger(__name__)
class DivNum(ErrorWrapper):
def test_args_number(self, *args):
if len(args) != 2:
self.raise_instance_error(f'{ARG_NUM_ERROR}{len(args)}')
return
@run_method_if_no_errors
def test_args_type(self, *args):
if not isinstance(args[0], int) or not isinstance(args[1], int):
self.raise_instance_error(ARG_TYPE_ERROR)
return
def div(self, *args):
self.clear_instance_error()
self.test_args_number(*args)
self.test_args_type(*args)
if self.error:
return self.error_detail
try:
return args[0] / args[1]
except Exception as e:
self.raise_instance_exception(e)
return self.error_detail
# Default creating params: report_prefix=None, exception_name_in_detail=False,
# logger=None, auto_logging=False
divnum_with_defaults = DivNum()
divnum_with_auto_logging = DivNum(auto_logging=True, logger=logger)
divnum_with_prefix_in_log_or_error_vessage = DivNum(report_prefix='DevNum instance error: ')
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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file error_wrapper-0.9.6-py3-none-any.whl
.
File metadata
- Download URL: error_wrapper-0.9.6-py3-none-any.whl
- Upload date:
- Size: 3.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
18f90151b05a52d63cdf8dbcc52bb93c7017f71721406171011b74844a2ce214
|
|
MD5 |
b2a86b1973575ad5d1e23b4cd03eb858
|
|
BLAKE2b-256 |
d55b27f109984f3079b31739cf264d0cab99a687f972c92cf25a150d1f33b3ff
|