Skip to main content

Better runtime error messages

Project description

frosch - Runtime Error Debugger

PyPI version Codecov Pytho_Version

Better runtime error messages

Are you also constantly seeing the runtime error message the python interpreter is giving you? It lacks some color and more debug information!

Get some good looking error tracebacks and beautifuly formatted last line with all its last values before you crashed the program.

Installation

$ pip install frosch

Usage

Call the hook function at the beginning of your program.

from frosch import hook

hook()

x = 3 + "String"

Print Exceptions

You can also easily print your catched exceptions to stdout

from frosch import print_exception

try:
  x = [0, 1]
  x[3]
except IndexError as error:
  print_exception(error)

Configuration

Themes

frosch allows to use different themes for styling the output:

Themes
abap bw igor native rrt trac
algol colorful inkpot paraiso_dark sas vim
algol_nu default lovelace paraiso_light solarized vs
arduino emacs manni pastie stata_dark xcode
autumn friendly monokai perldoc stata_light
borland fruity murphy rainbow_dash tango

Usage:

from frosch import hook

hook(theme="vim")

Custom Themes

You can also define custom themes by by subclassing Style (which is just a thin wrapper around pygments styles) and pass it to the hook. For more information please use the pygments docs.

from frosch import hook
from frosch.style import Style
from frosch.style.token import Keyword, Name, Comment, String, Error, \
     Number, Operator, Generic

class CustomStyle(Style):
    default_style = ""
    styles = {
        Comment:                'italic #888',
        Keyword:                'bold #005',
        Name:                   '#f00',
        Name.Function:          '#0f0',
        Name.Class:             'bold #0f0',
        String:                 'bg:#eee #111'
    }

hook(theme=CustomStyle)

OS Notifications

But wait there is more!

Running longer scripts in the background?

Just add a title and/or message to the hook and it will you give a notification when your program is crashing.

from frosch import hook

hook(
  theme="vs", # VSCode Theme
  title="I crashed!",
  message="Run Number #1444 is also crashing..."
)

This works on MacOS (osascript), Linux (notify-send) and Windows (powershell).

Contribution

frosch uses poetry for build and dependency management, so please install beforehand.

Setup

$ git clone https://github.com/HallerPatrick/frosch.git
$ poetry install

Run tests

$ python -m pytest tests

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

frosch-0.1.9.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

frosch-0.1.9-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file frosch-0.1.9.tar.gz.

File metadata

  • Download URL: frosch-0.1.9.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for frosch-0.1.9.tar.gz
Algorithm Hash digest
SHA256 b8c1c4160a4e6af9f60f05702e9b1ea115318475ed580a48a4e980885fc2cc82
MD5 80051473dcc0c4982697cc4a117dbf37
BLAKE2b-256 1364f75dd56296517f48600c743705955eaf790a9f1c50f20dd639f50e181bdb

See more details on using hashes here.

File details

Details for the file frosch-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: frosch-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for frosch-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 2bbdff6930538d0822472923939b1576ce79eb256373bb58b2a4629dd07775bb
MD5 882f1d129ec61518c1f399515bf208bf
BLAKE2b-256 fddbb2b4386857ac0c9b797f2447d5a8ae8728c5f3a07c75e6d4437998553962

See more details on using hashes here.

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