msgfy 0.2.1
msgfy is a Python library for convert Exception instance to a human-readable error message.
License: MIT License
Requires Python: >=3.7
Keywords: error

.. contents:: **msgfy**
   :backlinks: top
   :depth: 2


Summary
====================================
msgfy is a Python library for convert Exception instance to a human-readable error message.


.. image:: https://badge.fury.io/py/msgfy.svg
    :target: https://badge.fury.io/py/msgfy
    :alt: PyPI package version

.. image:: https://img.shields.io/pypi/pyversions/msgfy.svg
    :target: https://pypi.org/project/msgfy
    :alt: Supported Python versions

.. image:: https://github.com/thombashi/msgfy/actions/workflows/ci.yml/badge.svg
    :target: https://github.com/thombashi/msgfy/actions/workflows/ci.yml
    :alt: CI status of Linux/macOS/Windows

.. image:: https://coveralls.io/repos/github/thombashi/msgfy/badge.svg?branch=master
    :target: https://coveralls.io/github/thombashi/msgfy?branch=master
    :alt: Test coverage

.. image:: https://github.com/thombashi/msgfy/actions/workflows/github-code-scanning/codeql/badge.svg
    :target: https://github.com/thombashi/msgfy/actions/workflows/github-code-scanning/codeql
    :alt: CodeQL


Usage
====================================

Convert from Exception instance to an error message
------------------------------------------------------------------------
:Sample Code:
    .. code:: python

        import msgfy

        def error_message_example():
            try:
                raise ValueError("example message")
            except ValueError as e:
                print(msgfy.to_error_message(e))

        error_message_example()

:Output:
    ::

        ValueError: example error message

Specify message format
------------------------------------
:Sample Code:
    .. code:: python

        import msgfy

        def error_message_format_example():
            try:
                raise ValueError("example error message")
            except ValueError as e:
                print(msgfy.to_error_message(e, "{exception} {func_name}: {error_msg}"))

        error_message_format_example()

:Output:
    ::

        ValueError error_message_format_example: example error message


Convert from Exception instance to a debug message
------------------------------------------------------------------------
:Sample Code:
    .. code:: python

        import msgfy

        def debug_message_example():
            try:
                raise ValueError("example debug message")
            except ValueError as e:
                print(msgfy.to_debug_message(e))

        debug_message_example()

:Output:
    ::

        ValueError <ipython-input-4-bdd569af197b>(5) debug_message_example: example debug message


Available keywords for message formats
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+---------------------+-----------------------------------------------+
| Keyword             | Replaced to                                   |
+=====================+===============================================+
| ``"{exception}"``   | Exception class name                          |
+---------------------+-----------------------------------------------+
| ``"{file_name}"``   | File name that exception raised               |
+---------------------+-----------------------------------------------+
| ``"{line_no}"``     | Line number where the exception raised        |
+---------------------+-----------------------------------------------+
| ``"{func_name}"``   | Function name that exception raised           |
+---------------------+-----------------------------------------------+
| ``"{error_msg}"``   | Message that passed to the exception instance |
+---------------------+-----------------------------------------------+


Installation
====================================

Install from PyPI
------------------------------
::

    pip install msgfy

Install from PPA (for Ubuntu)
------------------------------
::

    sudo add-apt-repository ppa:thombashi/ppa
    sudo apt update
    sudo apt install python3-msgfy


Dependencies
====================================
Python 3.7+
No external dependencies.

Test dependencies
-----------------
- `pytest <https://docs.pytest.org/en/latest/>`__
- `tox <https://testrun.org/tox/latest/>`__