$def with (exception, message, traceback) $def head(): $var head = head $var title: Something went wrong $var subtitle: $exception.__name__: $message $# $ query = {"q": "python " + exception.__name__ + ": " + str(message) + " !"} $#

Try a web search $# for resources related to the exception raised.

$ python_docs = "https://docs.python.org/3/library" $def render_dictionary(obj_type, obj):
$for key, value in sorted(obj.items()):
$key
$if isinstance(value, dict): $:render_dictionary("dictionary", value) $elif isinstance(value, str):
$value
$elif isinstance(value, Path): path $value $elif __web__ := getattr(value, "__web__", None): route $(__web__[2].name).$(value.handler.__name__)
/$__web__[0]
$else:
$pformat(value, width=80)
$# $elif isinstance(value, list): $#
    $# $for item in value: $#
  1. $item
  2. $#
$ frames = list(reversed(inspect.getinnerframes(traceback)))

$exception.__name__: $message

$# XXX
    $# XXX $for n, (frame, filename, lineno, function, context, index) in enumerate(frames, 1): $# XXX
  1. $# XXX $filename $# XXX $:highlight(context[index], ".py") $# XXX
  2. $# XXX
$for n, (frame, filename, lineno, function, context, index) in enumerate(frames, 1): $ system_lib = filename.startswith("/usr")
$filename.removeprefix(str(getattr(tx.host, "working_dir", ""))) $ code, starting_line = getsourcelines(frame.f_code) $:highlight("".join(code), ".py", starting_line=starting_line, focus=lineno) $:render_dictionary("traceback", frame.f_locals)

Environment

User

$:render_dictionary("environment-user", tx.user.__dict__)

Host

$:render_dictionary("environment-host", tx.host.__dict__)

Request

$tx.request.method /$str(tx.request.uri.path)

$:render_dictionary("environment-request", tx.request.headers.__dict__) $ body_items = tx.request.body.items() $if body_items:
$str(body_items)

Response

$str(tx.response.status)

$:render_dictionary("environment-response", tx.response.headers.__dict__)
$str(tx.response.body)