annotate lib/cycloneerr/cycloneerr.py @ 1492:7c7415cfbc02

iot2: WIP still. more messages schema Ignore-this: ef94336852ff8885df861146fc1b01b darcs-hash:f5e1ffe61ecff1a7430b58a7504e35dcc809b1f8
author drewp <drewp@bigasterisk.com>
date Wed, 29 Jan 2020 01:03:40 -0800
parents c5bd44f90ced
children fd94061db75c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1315
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
1 try:
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
2 import http.client as httplib
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
3 except ImportError:
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
4 import httplib # type: ignore
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
5 import cgi
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
6
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
7 class PrettyErrorHandler(object):
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
8 """
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
9 mix-in to improve cyclone.web.RequestHandler
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
10 """
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
11 def get_error_html(self, status_code, **kwargs):
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
12 try:
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
13 tb = kwargs['exception'].getTraceback()
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
14 except AttributeError:
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
15 tb = ""
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
16 return "<html><title>%(code)d: %(message)s</title>" \
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
17 "<body>%(code)d: %(message)s<pre>%(tb)s</pre></body></html>" % {
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
18 "code": status_code,
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
19 "message": httplib.responses[status_code],
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
20 "tb" : cgi.escape(tb),
c5bd44f90ced make cycloneerr release
drewp <drewp@bigasterisk.com>
parents:
diff changeset
21 }