Create exception classes from message templates.
Project description
Raise exceptions with consistent messages while avoiding the boiler plate.
Compare this:
>>> from exception_template import ExceptionTemplate >>> class MyException(ExceptionTemplate): ... message = 'Hello, {person}. Here is my {adjective} exception class.' >>> raise MyException(person='Ryan', adjective='fancy') Traceback (most recent call last): ... MyException: Hello, Ryan. Here is my fancy exception class.
To this:
>>> class MyException(Exception): ... def __init__(self, person: str, adjective: str) -> None: ... self.person = person ... self.adjective = adjective ... super().__init__('Hello, {person}. Here is my {adjective} exception class.' ... .format(person=person, adjective=adjective)) >>> raise MyException('Ryan', 'lame') Traceback (most recent call last): ... MyException: Hello, Ryan. Here is my lame exception class.
Or this:
>>> class MyException(Exception): ... pass >>> raise MyException('Hello, Ryan. Here is my exception class with a message I copy-pasted in 500 places.') Traceback (most recent call last): ... MyException: Hello, Ryan. Here is my exception class with a message I copy-pasted in 500 places.
Additionally, the ExceptionTemplate parameters are available as members on the exception instance:
>>> try: ... foo() ... except MyException as ex: ... print(ex.person) Ryan
Installing
pip install exception-template
No extra dependencies are needed!
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 exception_template-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a04fda2194464e961f0a21ee77484954fb691f078a6342bb5ba84263881b2d48 |
|
MD5 | 414b58ab05da6d8c278be97fa8681c9c |
|
BLAKE2b-256 | d6124daaea0a9567b8a047c5490b266010c1a920845dca5b111cad636873c65a |