Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

exception-template-1.0.0.tar.gz (2.5 kB view hashes)

Uploaded Source

Built Distribution

exception_template-1.0.0-py3-none-any.whl (4.4 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