summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2014-06-07 23:44:00 (GMT)
committerBenjamin Peterson <benjamin@python.org>2014-06-07 23:44:00 (GMT)
commited1160b39c23c4b035b6c203cc6df53274d08939 (patch)
treecb26a22336a58700237f07d8c8fa1402ee8b0a0a /Lib
parent3c2dca67ac9cdc26fb02473e05723486ffc8d52b (diff)
downloadcpython-ed1160b39c23c4b035b6c203cc6df53274d08939.zip
cpython-ed1160b39c23c4b035b6c203cc6df53274d08939.tar.gz
cpython-ed1160b39c23c4b035b6c203cc6df53274d08939.tar.bz2
don't remove self from example code in the HTML output (closes #13223)
Patch by Víctor Terrón.
Diffstat (limited to 'Lib')
-rwxr-xr-xLib/pydoc.py9
-rw-r--r--Lib/test/pydoc_mod.py10
-rw-r--r--Lib/test/test_pydoc.py44
3 files changed, 61 insertions, 2 deletions
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index 220a3cb..2dee6ee 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -595,10 +595,15 @@ class HTMLDoc(Doc):
elif pep:
url = 'http://www.python.org/dev/peps/pep-%04d/' % int(pep)
results.append('<a href="%s">%s</a>' % (url, escape(all)))
+ elif selfdot:
+ # Create a link for methods like 'self.method(...)'
+ # and use <strong> for attributes like 'self.attr'
+ if text[end:end+1] == '(':
+ results.append('self.' + self.namelink(name, methods))
+ else:
+ results.append('self.<strong>%s</strong>' % name)
elif text[end:end+1] == '(':
results.append(self.namelink(name, methods, funcs, classes))
- elif selfdot:
- results.append('self.<strong>%s</strong>' % name)
else:
results.append(self.namelink(name, classes))
here = end
diff --git a/Lib/test/pydoc_mod.py b/Lib/test/pydoc_mod.py
index f86b5c6..cda1c9e 100644
--- a/Lib/test/pydoc_mod.py
+++ b/Lib/test/pydoc_mod.py
@@ -15,6 +15,16 @@ class B(object):
NO_MEANING = "eggs"
pass
+class C(object):
+ def say_no(self):
+ return "no"
+ def get_answer(self):
+ """ Return say_no() """
+ return self.say_no()
+ def is_it_true(self):
+ """ Return self.get_answer() """
+ return self.get_answer()
+
def doc_func():
"""
This function solves all of the world's problems:
diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py
index f26fb15..188c4c2 100644
--- a/Lib/test/test_pydoc.py
+++ b/Lib/test/test_pydoc.py
@@ -47,6 +47,7 @@ CLASSES
builtins.object
A
B
+ C
\x20\x20\x20\x20
class A(builtins.object)
| Hello and goodbye
@@ -74,6 +75,26 @@ CLASSES
| Data and other attributes defined here:
|\x20\x20
| NO_MEANING = 'eggs'
+\x20\x20\x20\x20
+ class C(builtins.object)
+ | Methods defined here:
+ |\x20\x20
+ | get_answer(self)
+ | Return say_no()
+ |\x20\x20
+ | is_it_true(self)
+ | Return self.get_answer()
+ |\x20\x20
+ | say_no(self)
+ |\x20\x20
+ | ----------------------------------------------------------------------
+ | Data descriptors defined here:
+ |\x20\x20
+ | __dict__
+ | dictionary for instance variables (if defined)
+ |\x20\x20
+ | __weakref__
+ | list of weak references to the object (if defined)
FUNCTIONS
doc_func()
@@ -124,6 +145,7 @@ expected_html_pattern = """
<dl>
<dt><font face="helvetica, arial"><a href="test.pydoc_mod.html#A">A</a>
</font></dt><dt><font face="helvetica, arial"><a href="test.pydoc_mod.html#B">B</a>
+</font></dt><dt><font face="helvetica, arial"><a href="test.pydoc_mod.html#C">C</a>
</font></dt></dl>
</dd>
</dl>
@@ -165,6 +187,28 @@ Data descriptors defined here:<br>
Data and other attributes defined here:<br>
<dl><dt><strong>NO_MEANING</strong> = 'eggs'</dl>
+</td></tr></table> <p>
+<table width="100%%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom>&nbsp;<br>
+<font color="#000000" face="helvetica, arial"><a name="C">class <strong>C</strong></a>(<a href="builtins.html#object">builtins.object</a>)</font></td></tr>
+\x20\x20\x20\x20
+<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
+<td width="100%%">Methods defined here:<br>
+<dl><dt><a name="C-get_answer"><strong>get_answer</strong></a>(self)</dt><dd><tt>Return&nbsp;<a href="#C-say_no">say_no</a>()</tt></dd></dl>
+
+<dl><dt><a name="C-is_it_true"><strong>is_it_true</strong></a>(self)</dt><dd><tt>Return&nbsp;self.<a href="#C-get_answer">get_answer</a>()</tt></dd></dl>
+
+<dl><dt><a name="C-say_no"><strong>say_no</strong></a>(self)</dt></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
+</dl>
</td></tr></table></td></tr></table><p>
<table width="100%%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">