GUI Exception Handler (gtkexcepthook.py)¶
Graphical exception handler for PyGTK applications
Usage¶
import gtkexcepthook
gtkexcepthook.enable(optional_reporting_callback)
Notes¶
http://www.daa.com.au/pipermail/pygtk/2003-August/005775.html
Message-ID: <1062087716.1196.5.camel@emperor.homelinux.net>
"The license is whatever you want."
Contains changes merged back from qtexcepthook.py, a Qt 5 port of
gtkexcepthook.py by Stephan Sokolow ©2019.
- Changes from Van Raemdonck version:
Ported to PyGI and GTK 3.x
Refactored code for maintainability and added MyPy type annotations
Switched from auto-enable to
gtkexcepthook.enableto silence PyFlakes false positives. (Borrowed naming convention from cgitb)Split out traceback import to silence PyFlakes warning.
Started to resolve PyLint complaints
API Documentation¶
- class ExceptionHandler(reporting_cb=None)[source]¶
GTK-based graphical exception handler
- Parameters:
reporting_cb (
Optional[Callable[[str],None]]) – A callback to be exposed via a Report… button which will receive the formatted traceback as a string.
- __call__(exctyp, value, tback)[source]¶
Custom
sys.excepthookcallback which displays a GTK dialog- Parameters:
exctyp (
Type[BaseException])value (
BaseException)tback (
TracebackType)
- static make_details_dialog(parent, text)[source]¶
Initialize and return the details dialog
- Parameters:
parent (
Gtk.MessageDialog) – A reference to the dialog frommake_info_dialog.text (
str) – The contents of the formatted traceback.
- Return type:
- class Scope(*values)[source]¶
The scope of a variable looked up by
lookup- Builtin = 1¶
- Global = 2¶
- Local = 3¶
- NONE = None¶
- analyse(exctyp, value, tracebk, context_lines=3)[source]¶
Generate a traceback, including the contents of variables in each stack frame.
- Parameters:
exctyp (
Type[BaseException]) – Used for class name.value (
BaseException) – Used for exception message.tracebk (
TracebackType) – Used for everything else.context_lines (
int) – See thecontextargument toinspect.getinnerframes
- Return type:
- Returns:
The formatted traceback
- gather_vars(frame_rec, local_vars)[source]¶
Extract all the local variables from the given traceback frame using
lookup().- Parameters:
frame_rec (
FrameInfo) – A frame info object originally retrieved viainspect.getinnerframes.local_vars (
Dict[str,Any]) – A cached locals dict originally retrieved viainspect.getargvalues.
- Return type:
- Returns:
A dict of the local variables.
- lookup(name, frame, local_vars)[source]¶
Find the value for a given name in the given frame
- Parameters:
name (
str) – Name of the variable to look up.frame (
FrameType) – A frame object originally retrieved viainspect.getinnerframes.local_vars (
Dict[str,Any]) – A cached locals dict originally retrieved viainspect.getargvalues.
- Return type:
- Returns:
A tuple of a
Scopeand the requested value.


Install Dependencies