changeset: 91074:cddb17c4975e parent: 91071:6f70a18313e5 parent: 91072:7aa72075d440 user: Benjamin Peterson date: Sat Jun 07 16:47:15 2014 -0700 files: Lib/pydoc.py Misc/NEWS description: merge 3.4 (#13223) diff -r 6f70a18313e5 -r cddb17c4975e Lib/pydoc.py --- a/Lib/pydoc.py Sat Jun 07 15:09:36 2014 -0700 +++ b/Lib/pydoc.py Sat Jun 07 16:47:15 2014 -0700 @@ -593,10 +593,15 @@ elif pep: url = 'http://www.python.org/dev/peps/pep-%04d/' % int(pep) results.append('%s' % (url, escape(all))) + elif selfdot: + # Create a link for methods like 'self.method(...)' + # and use for attributes like 'self.attr' + if text[end:end+1] == '(': + results.append('self.' + self.namelink(name, methods)) + else: + results.append('self.%s' % name) elif text[end:end+1] == '(': results.append(self.namelink(name, methods, funcs, classes)) - elif selfdot: - results.append('self.%s' % name) else: results.append(self.namelink(name, classes)) here = end diff -r 6f70a18313e5 -r cddb17c4975e Lib/test/pydoc_mod.py --- a/Lib/test/pydoc_mod.py Sat Jun 07 15:09:36 2014 -0700 +++ b/Lib/test/pydoc_mod.py Sat Jun 07 16:47:15 2014 -0700 @@ -15,6 +15,16 @@ 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 -r 6f70a18313e5 -r cddb17c4975e Lib/test/test_pydoc.py --- a/Lib/test/test_pydoc.py Sat Jun 07 15:09:36 2014 -0700 +++ b/Lib/test/test_pydoc.py Sat Jun 07 16:47:15 2014 -0700 @@ -47,6 +47,7 @@ builtins.object A B + C \x20\x20\x20\x20 class A(builtins.object) | Hello and goodbye @@ -74,6 +75,26 @@ | 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 @@
A
B +
C
@@ -165,6 +187,28 @@ Data and other attributes defined here:
NO_MEANING = 'eggs'
+

+ + + +\x20\x20\x20\x20 + +
 
+class C(builtins.object)
    Methods defined here:
+
get_answer(self)
Return say_no()
+ +
is_it_true(self)
Return self.get_answer()
+ +
say_no(self)
+ +
+Data descriptors defined here:
+
__dict__
+
dictionary for instance variables (if defined)
+
+
__weakref__
+
list of weak references to the object (if defined)
+

diff -r 6f70a18313e5 -r cddb17c4975e Misc/NEWS --- a/Misc/NEWS Sat Jun 07 15:09:36 2014 -0700 +++ b/Misc/NEWS Sat Jun 07 16:47:15 2014 -0700 @@ -94,6 +94,9 @@ - Issue #21515: tempfile.TemporaryFile now uses os.O_TMPFILE flag is available. +- Issue #13223: Fix pydoc.writedoc so that the HTML documentation for methods + that use 'self' in the example code is generated correctly. + - Issue #21463: In urllib.request, fix pruning of the FTP cache. - Issue #21618: The subprocess module could fail to close open fds that were