Giter Club home page Giter Club logo

frosch's Introduction

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

frosch's People

Contributors

gvx avatar hallerpatrick avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.