[![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/) [![PyPI Latest Release](https://img.shields.io/pypi/v/sabaka.svg)](https://pypi.org/project/sabaka/) [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Documentation Status](https://readthedocs.org/projects/sabaka/badge/?version=latest)](http://sabaka.readthedocs.io/?badge=latest)

# What is sabaka?

<p align="center">
<img src="https://www.indiewire.com/wp-content/uploads/2018/07/NUP_179022_0915.jpg" height="300"/>
</p>



In Belter Creole, in the TV show The Expanse (and in the books on which the show was based), "Sabaka" means ["a general-purpose curse; "Dammit!" or "You bastard!"](https://expanse.fandom.com/wiki/Belter_Creole), a suitable name for an error messaging package. The purpose of **sabaka** is to expand options for error messages beyond passed strings to include:

1. a message composed from passed args and kwargs; and
2. a default message.
   
This is done by either using one of the included Exception subclasses or by mixing-in one of the mixin classes which add other messaging options to Python's base exceptions.

# Examples

# API

## Exceptions


## Exception Mixins


# Contributing 

Contributors are always welcome and should find **sabaka** easy to work with. The project is highly documented so that users and developers can make **sabaka** work with their projects. It is designed for Python coders at all levels. Beginners should be able to follow the readable code and internal documentation to understand how it works. More advanced users should find complex and tricky problems addressed through efficient code.
