diff -r 0d0d46e1bdaf Lib/pydoc.py
--- a/Lib/pydoc.py Mon May 23 18:47:27 2011 +0200
+++ b/Lib/pydoc.py Mon May 23 18:34:23 2011 +0100
@@ -341,6 +341,7 @@
if inspect.isroutine(object): return self.docroutine(*args)
except AttributeError:
pass
+ if isinstance(object, partial): return self.docpartialfunc(*args)
if isinstance(object, property): return self.docproperty(*args)
return self.docother(*args)
@@ -920,6 +921,23 @@
getdoc(object), self.preformat, funcs, classes, methods)
doc = doc and '
%s' % doc
return '- %s
%s
\n' % (decl, doc)
+
+ def docpartialfunc(self, object, name=None, mod=None,
+ funcs={}, classes={}, methods={}, cl=None):
+ anchor = (cl and cl.__name__ or '') + '-' + name
+ note = ''
+
+ title = '%s' % (anchor, name)
+ args, varargs, varkw, defaults = inspect.getargspec(object.func)
+ argspec = inspect.formatargspec(
+ args, varargs, varkw, defaults,
+ formatvalue=self.formatvalue)
+ decl = title + argspec
+
+ doc = self.markup(
+ getdoc(object), self.preformat, funcs, classes, methods)
+ doc = doc and '%s' % doc
+ return '- %s
%s
\n' % (decl, doc)
def _docdescriptor(self, name, value, mod):
results = []
@@ -2064,7 +2082,7 @@
msg = 'the pydoc.serve() function is deprecated'
warnings.warn(msg, DeprecationWarning, stacklevel=2)
- class DocHandler(http.server.BaseHTTPRequestHandler):
+ class Handler(http.server.BaseHTTPRequestHandler):
def send_document(self, title, contents):
try:
self.send_response(200)