msg106942 - (view) |
Author: Éric Araujo (eric.araujo) *  |
Date: 2010-06-03 11:42 |
Inconsistent behavior: pydoc3 str: works pydoc3 str.translate: doesn’t pydoc3 builtins.str: works pydoc3 builtins.str.translate: doesn’t I think pydoc3 str.translate should work. I’ll be able to try to write a patch in some weeks. |
|
|
msg107621 - (view) |
Author: Alexander Belopolsky (belopolsky) *  |
Date: 2010-06-12 02:00 |
Note that >>> help(str.translate) Help on method_descriptor: translate(...) S.translate(table) -> str Return a copy of the string S, where all characters have been mapped .. but >>> help('str.translate') no Python documentation found for 'str.translate' |
|
|
msg127829 - (view) |
Author: Éric Araujo (eric.araujo) *  |
Date: 2011-02-03 22:59 |
Yep, same bug. Possibly related: #410336 (I have to read it again to make sure). |
|
|
msg137064 - (view) |
Author: Éric Araujo (eric.araujo) *  |
Date: 2011-05-27 15:46 |
Turns out the fix is very simple. Please review. |
|
|
msg137073 - (view) |
Author: Alexander Belopolsky (belopolsky) *  |
Date: 2011-05-27 16:12 |
The patch looks good. A nit-pick: + if len(parts) > 0: Since *parts* is a list, the above can be replaced with simply "if parts:". Also, it seems to me that the new code may produce an AttributeError when given invalid name, but locate() function is supposed to return None instead. I wouder if it would be possible to reuse the try/except logic ing the "if module" clause and simply do something like if module: object = module else: object = builtins for part in parts[n:]: try: object = getattr(object, part) except AttributeError: return None return object |
|
|
msg137077 - (view) |
Author: Éric Araujo (eric.araujo) *  |
Date: 2011-05-27 16:23 |
> Since *parts* is a list, the above can be replaced with simply "if parts:" Heh, I always use implied truth values and one disagreed with Tarek about this, but here if felt more natural to spell out my mind with an explicit > 0 comparison :) > Also, it seems to me that the new code may produce an AttributeError > when given invalid name I didn’t see that, I forgot to test invalid names, since test_pydoc already has some checks. I’ll add tests and see if I can reproduce what you’re hinting at (it would be helpful if you could give examples of invalid names: full dotted names, method names, class names?). > I wouder if it would be possible to reuse the try/except logic ing > the "if module" clause Sure, as long as the tests pass I have no preference about the implementation. BTW, what’s your opinion on the test I added? I use render_doc to test name resolving, do you think I should also test the command-line pydoc in a subprocess or is it okay to have white-box knowledge here? |
|
|
msg137078 - (view) |
Author: Alexander Belopolsky (belopolsky) *  |
Date: 2011-05-27 16:26 |
On Fri, May 27, 2011 at 12:23 PM, Éric Araujo <report@bugs.python.org> wrote: > .. I’ll add tests and see if I can reproduce what you’re hinting at (it would be helpful > if you could give examples of invalid names: full dotted names, method names, class names?). I did not try to apply your patch yet, but what I had in mind was misspelled names like "str.transkate". |
|
|
msg138114 - (view) |
Author: Éric Araujo (eric.araujo) *  |
Date: 2011-06-10 17:05 |
I added tests to cover non-existing attributes and updated the code to follow your clever suggestion. |
|
|
msg141388 - (view) |
Author: Roundup Robot (python-dev)  |
Date: 2011-07-29 15:36 |
New changeset 68df566cbf92 by Éric Araujo in branch '2.7': Make “pydoc somebuiltin.somemethod” work (#8887) http://hg.python.org/cpython/rev/68df566cbf92 |
|
|
msg141389 - (view) |
Author: Roundup Robot (python-dev)  |
Date: 2011-07-29 15:38 |
New changeset f02a8f906342 by Éric Araujo in branch '3.2': Make “pydoc somebuiltin.somemethod” work (#8887) http://hg.python.org/cpython/rev/f02a8f906342 New changeset 91d6cabf77d6 by Éric Araujo in branch 'default': Merge fix for #8887 from 3.2 http://hg.python.org/cpython/rev/91d6cabf77d6 |
|
|
msg141390 - (view) |
Author: Éric Araujo (eric.araujo) *  |
Date: 2011-07-29 15:39 |
Thanks again for the useful review. |
|
|