The template loader wouldn't handle non-ASCII template encodings.
Updated it to use the encoding parameter of the Jinja loader when
reading and writing the template files.
Fixes#46
Werkzeug will disable its default logging setup if another log handler
is already configured. At some point the initialization order changed
and the logging panel's handler is getting added first now, so
werkzeug's request log will not be printed to the console by default. By
explicitly calling werkzeug's logger we now make sure it's initialized
before the logging panel's handler.
Fixes#33
The "printable" filter can throw an exception when trying to display a
user object whose __repr__ implementation returns unicode, which repr()
does not allow. Catch it and display a more informative message
instead.
See #31 and #39
Fixing #31 where the query signing would break when the SECRET_KEY
contained non-ascii values. In the process switch to itsdangerous
instead of rolling our own signatures.
Profiler: Use update_wrapper on partial
If the profiler panel is applied before the request-vars panel, the wrapper added by the profiler causes an error since it's missing a `__module__` attribute.
The `update_wrapper` call is needed so that the new partial
func inherits the `__module__` of the original function.
The `__module__` is needed because the request-vars panel uses
`func.__module__` in building the qualified name.
simplejson is only needed for the SQLAlchemy panel on Python < 2.6
Also, provides a nice error message in the SQLAlchemy panel about
missing dependencies.
Initialize the logging panel log handler on the first request so that
werkzeug sets up its default logger first. Werkzeug now only adds its
default log handler if no others are set up yet. So, when the logging
panel set up its logger first, it suppressed the output from the
development server.