WebUtils

The WebUtils package is a basic set of modules for common web related programming tasks such as encoding/decoding HTML, dealing with Cookies, etc.

See the reference documentation for an overview of the available functions.

HTMLForException

This module defines a function by the same name:

def htmlForException(excInfo=None, options=None):
    ...

htmlForException returns an HTML string that presents useful information to the developer about the exception. The first argument is a tuple such as returned by sys.exc_info() which is in fact, invoked if the tuple isn’t provided. The options parameter can be a dictionary to override the color options in HTMLForExceptionOptions which is currently defined as:

HTMLForExceptionOptions = {
    'table': 'background-color:#f0f0f0',
    'default': 'color:#000',
    'row.location': 'color:#009',
    'row.code': 'color:#900',
}

A sample HTML exception string looks like this:

Traceback (most recent call last):
  File "Application.py", line 90, in dispatchRequest
    self.respond(context, response)
  File "Application.py", line 112, in respond
    ctx.component().respond(ctx, response)
  File "HTTPComponent.py", line 30, in respond
    method(ctx, response)
  File "/home/echuck/Webware/Examples/Introspect.py", line 9, in respondToGet
    self.write('<table %s>' % tableOptions)
NameError: tableOptions

HTTPStatusCodes

This module provides a list of well known HTTP status codes in list form and in a dictionary that can be keyed by code number or identifier.

You can index the HTTPStatusCodes dictionary by code number such as 200, or identifier such as OK. The dictionary returned has keys 'code', 'identifier' and 'htmlMsg'. An 'asciiMsg' key is provided, however, the HTML tags are not yet actually stripped out.

The htmlTableOfHTTPStatusCodes() function returns a string which is exactly that: a table containing the HTTPStatusCodes defined by the module. You can affect the formatting of the table by specifying values for the arguments. It’s highly recommended that you use key=value arguments since the number and order could easily change in future versions. The definition is:

def htmlTableOfHTTPStatusCodes(
        codes=HTTPStatusCodeList,
        tableArgs='', rowArgs='style="vertical-align:top"',
        colArgs='', headingArgs=''):
    ...

If you run the script, it will invoke htmlTableOfHTTPStatusCodes() and print its contents with some minimal HTML wrapping. You could do this:

> cd Webware/Projects/WebUtils
> python HTTPStatusCodes.py > HTTPStatusCodes.html

And then open the HTML file in your favorite browser.