Skip to content

IgorNk500/metaerrors

Repository files navigation

MetaErrors lib (v2.0)

This library redirects errors to popups (supported for Windows, Linux, macOS and FreeBSD.)

(Go to changelog)

Table of contents

  1. Installing
  2. Constants and vars
  3. Recommended structure
  4. Functions and syntax
  5. Supporting
  6. Build
  7. Script configurations
  8. Workflows

Installing

python -m pip install metaerrors

Constants and vars

Constants indicate the popup type, and std_title and msg_format indicate the standard title and message format. Example of the message format:

msg_format = "{name}: {msg}"

Standard values:

msg_format = "{name}: {msg}"
std_title = "The program terminated with the error:" # For metaraise

Recommended structure

To redirect your program's errors to metaraise,
I recommend the following structure:

from metaerrors import metaraise

try:
    #Your program
except Exception as e:
    metaraise(e)

Functions and syntax

show()

def show(msg: str, title: str, mode: int):
    """Displays a pop-up"""

msg - your message
title - title of popup
mode - display mode (INFO, WARN, ERROR, STD)

metaraise()

def metaraise(err: BaseException, title: str = std_title, frmt: str = msg_format, do_exit: bool = False):
    """Raise Replacement"""

err - a BaseException type object
title - title
frmt - msg_format
do_exit - Determines whether an exit with code 1 will be performed

OS modules (win, mac, linux) have the same functions.

Supporting

This library is supported for Windows, Linux, and macOS.

Some functions are not supported by some OS


All functions are supported in Windows


The zenity package does not support the header in Linux, and the notify-send package does not support the pop-up type


macOS does not support the pop-up type (INFO, WARN, ERROR, STD).


On FreeBSD, modes only work with the zenity package installed.


Build

To build the wheel, run:

python -m pip install setuptools wheel
python setup.py bdist_wheel

Don't forget to change the config in the setup.py file before doing this.
All wheels are stored in the dist folder

Script configurations

If your editor supports run configurations (for example, PyCharm), then you will be able to run various scripts:

  • Clear wheels
  • Del lib
  • Install
  • Build wheel
  • Setup
  • Clean + Build Wheel

Workflows

This project contains one workflow that:

  • collects the wheel library,
  • adds it to the release files,
  • and uploads the release to PyPi.

If you encounter any errors, please open issue on GitHub.