def _render_error(template, context, error): if template.error_handler: result = template.error_handler(context, error) if not result: raise error else: error_template = exceptions.html_error_template() if context._outputting_as_unicode: context._buffer_stack[:] = [util.FastEncodingBuffer(unicode=True)] else: context._buffer_stack[:] = [ util.FastEncodingBuffer(error_template.output_encoding, error_template.encoding_errors) ] context._with_template = error_template error_template.render_context(context, error=error)
def _render_error(template, context, error): if template.error_handler: result = template.error_handler(context, error) if not result: raise error else: error_template = exceptions.html_error_template() if context._outputting_as_unicode: context._buffer_stack[:] = [util.FastEncodingBuffer(unicode=True)] else: context._buffer_stack[:] = [util.FastEncodingBuffer( error_template.output_encoding, error_template.encoding_errors)] context._with_template = error_template error_template.render_context(context, error=error)
def _render_error(template, context, error): if template.error_handler: result = template.error_handler(context, error) if not result: compat.reraise(*sys.exc_info()) else: error_template = exceptions.html_error_template() if context._outputting_as_unicode: context._buffer_stack[:] = [ util.FastEncodingBuffer(as_unicode=True) ] else: context._buffer_stack[:] = [ util.FastEncodingBuffer( error_template.output_encoding, error_template.encoding_errors, ) ] context._set_with_template(error_template) error_template.render_context(context, error=error)
def _render_error(template, context, error): if template.error_handler: result = template.error_handler(context, error) if not result: tp, value, tb = sys.exc_info() if value and tb: raise value.with_traceback(tb) else: raise error else: error_template = exceptions.html_error_template() if context._outputting_as_unicode: context._buffer_stack[:] = [util.FastEncodingBuffer()] else: context._buffer_stack[:] = [ util.FastEncodingBuffer( error_template.output_encoding, error_template.encoding_errors, ) ] context._set_with_template(error_template) error_template.render_context(context, error=error)
_exec_template(callable_, context, args=args, kwargs=kwargs) def _exec_template(callable_, context, args=None, kwargs=None): """execute a rendering callable given the callable, a Context, and optional explicit arguments the contextual Template will be located if it exists, and the error handling options specified on that Template will be interpreted here. """ template = context._with_template if template is not None and (template.format_exceptions or template.error_handler): error = None try: callable_(context, *args, **kwargs) except Exception, e: error = e except: e = sys.exc_info()[0] error = e if error: if template.error_handler: result = template.error_handler(context, error) if not result: raise error else: error_template = exceptions.html_error_template() context._buffer_stack[:] = [util.FastEncodingBuffer(error_template.output_encoding, error_template.encoding_errors)] context._with_template = error_template error_template.render_context(context, error=error) else: callable_(context, *args, **kwargs)
the contextual Template will be located if it exists, and the error handling options specified on that Template will be interpreted here. """ template = context._with_template if template is not None and (template.format_exceptions or template.error_handler): error = None try: callable_(context, *args, **kwargs) except Exception, e: error = e except: e = sys.exc_info()[0] error = e if error: if template.error_handler: result = template.error_handler(context, error) if not result: raise error else: error_template = exceptions.html_error_template() context._buffer_stack[:] = [ util.FastEncodingBuffer(error_template.output_encoding, error_template.encoding_errors) ] context._with_template = error_template error_template.render_context(context, error=error) else: callable_(context, *args, **kwargs)