'Produce HTML documentation for a function or method object.'

def docroutine(self, object, name, mod=None, funcs={}, classes={}, methods={}, cl=None):

    anchor = ((((cl and cl.__name__) or '') + '-') + name)
    note = ''
    title = ('<a    name="%s"><strong>%s</strong></a>' % (self.escape(anchor), self.escape(name)))
    if inspect.ismethod(object):
        (args, varargs, varkw, defaults) = inspect.getargspec(object.im_func)
        argspec = inspect.formatargspec(args[1:], varargs, varkw, defaults, formatvalue=self.formatvalue)
    elif inspect.isfunction(object):
        (args, varargs, varkw, defaults) = inspect.getargspec(object)
        argspec = inspect.formatargspec(args, varargs, varkw, defaults, formatvalue=self.formatvalue)
    else:
        argspec = '(...)'
    if isinstance(object, tuple):
        argspec = (object[0] or argspec)
        docstring = (object[1] or '')
    else:
        docstring = pydoc.getdoc(object)
    decl = ((title + argspec) + (note and self.grey(('<font    face="helvetica,    arial">%s</font>' % note))))
    doc = self.markup(docstring, self.preformat, funcs, classes, methods)
    doc = (doc and ('<dd><tt>%s</tt></dd>' % doc))
    return ('<dl><dt>%s</dt>%s</dl>\n' % (decl, doc))
