cpython: 68df566cbf92 (original) (raw)
Mercurial > cpython
changeset 71599:68df566cbf92 2.7
Make “pydoc somebuiltin.somemethod” work (#8887) [#8887]
Éric Araujo merwok@netwok.org | |
---|---|
date | Fri, 29 Jul 2011 17:34:35 +0200 |
parents | 5b36dca0c22f |
children | 01722022f88d |
files | Lib/pydoc.py Lib/test/test_pydoc.py Misc/NEWS |
diffstat | 3 files changed, 29 insertions(+), 8 deletions(-)[+] [-] Lib/pydoc.py 13 Lib/test/test_pydoc.py 21 Misc/NEWS 3 |
line wrap: on
line diff
--- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -1454,13 +1454,14 @@ def locate(path, forceload=0): else: break if module: object = module
for part in parts[n:]:[](#l1.7)
try: object = getattr(object, part)[](#l1.8)
except AttributeError: return None[](#l1.9)
else:return object[](#l1.10)
if hasattr(__builtin__, path):[](#l1.12)
return getattr(__builtin__, path)[](#l1.13)
object = __builtin__[](#l1.14)
- for part in parts[n:]:
try:[](#l1.16)
object = getattr(object, part)[](#l1.17)
except AttributeError:[](#l1.18)
return None[](#l1.19)
- return object
--------------------------------------- interactive interpreter interface
--- a/Lib/test/test_pydoc.py +++ b/Lib/test/test_pydoc.py @@ -1,8 +1,8 @@ +import os import sys -import os -import os.path import difflib import subprocess +import builtin import re import pydoc import inspect @@ -357,6 +357,23 @@ class TestHelper(unittest.TestCase): self.assertEqual(sorted(pydoc.Helper.keywords), sorted(keyword.kwlist))
- def test_builtin(self):
for name in ('str', 'str.translate', '__builtin__.str',[](#l2.19)
'__builtin__.str.translate'):[](#l2.20)
# test low-level function[](#l2.21)
self.assertIsNotNone(pydoc.locate(name))[](#l2.22)
# test high-level function[](#l2.23)
try:[](#l2.24)
pydoc.render_doc(name)[](#l2.25)
except ImportError:[](#l2.26)
self.fail('finding the doc of {!r} failed'.format(o))[](#l2.27)
for name in ('not__builtin__', 'strrr', 'strr.translate',[](#l2.29)
'str.trrrranslate', '__builtin__.strrr',[](#l2.30)
'__builtin__.str.trrranslate'):[](#l2.31)
self.assertIsNone(pydoc.locate(name))[](#l2.32)
self.assertRaises(ImportError, pydoc.render_doc, name)[](#l2.33)
+ def test_main(): test.test_support.run_unittest(PyDocDocTest,
--- a/Misc/NEWS +++ b/Misc/NEWS @@ -37,6 +37,9 @@ Core and Builtins Library ------- +- Issue #8887: "pydoc somebuiltin.somemethod" (or help('somebuiltin.somemethod')