[issue19980] Improve help('non-topic') response
Roundup Robot added the comment: New changeset 4a1fe339dcf6 by Serhiy Storchaka in branch 'default': Issue #19980: Improved help() for non-recognized strings. help('') now https://hg.python.org/cpython/rev/4a1fe339dcf6 -- nosy: +python-dev ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Serhiy Storchaka added the comment: There is a problem with the patch. When you are in interactive help utility, then the request 'help' runs nested interactive help utility. The difference between unpatched behavior is that now you need press Ctrl-D or 'q' twice to exit to normal Python interpreter. When you type 'help' repeatedly, your could run third, fourth, etc nested help utility. Here is modified patch. Now help('help') produces the same output as help(help), but the 'help' request in interactive help utility prints help intro message. help('help') Help on _Helper in module _sitebuiltins object: help = class _Helper(builtins.object) | Define the builtin 'help'. | | This is a wrapper around pydoc.help that provides a helpful message | when 'help' is typed at the Python interactive prompt. | | Calling help() at the Python prompt starts an interactive help session. | Calling help(thing) prints help for the python object 'thing'. | | Methods defined here: | | __call__(self, *args, **kwds) | | __repr__(self) | | -- | Data descriptors defined here: | | __dict__ | dictionary for instance variables (if defined) | | __weakref__ | list of weak references to the object (if defined) help() Welcome to Python 3.5's help utility! If this is your first time using Python, you should definitely check out the tutorial on the Internet at http://docs.python.org/3.5/tutorial/. Enter the name of any module, keyword, or topic to get help on writing Python programs and using Python modules. To quit this help utility and return to the interpreter, just type quit. To get a list of available modules, keywords, symbols, or topics, type modules, keywords, symbols, or topics. Each module also comes with a one-line summary of what it does; to list the modules whose name or summary contain a given string such as spam, type modules spam. help help Welcome to Python 3.5's help utility! If this is your first time using Python, you should definitely check out the tutorial on the Internet at http://docs.python.org/3.5/tutorial/. Enter the name of any module, keyword, or topic to get help on writing Python programs and using Python modules. To quit this help utility and return to the interpreter, just type quit. To get a list of available modules, keywords, symbols, or topics, type modules, keywords, symbols, or topics. Each module also comes with a one-line summary of what it does; to list the modules whose name or summary contain a given string such as spam, type modules spam. help -- assignee: docs@python - serhiy.storchaka nosy: +serhiy.storchaka Added file: http://bugs.python.org/file38278/issue19880v4.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Mark Lawrence added the comment: LGTM. I noticed this running the tests. test_modules (test.test_pydoc.PydocImportTest) ... skipped 'causes undesireable side-effects (#20128)' test_modules_search (test.test_pydoc.PydocImportTest) ... skipped 'causes undesireable side-effects (#20128)' test_modules_search_builtin (test.test_pydoc.PydocImportTest) ... skipped 'some buildbots are not cooperating (#20128)' -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Serhiy Storchaka added the comment: Thank you for your contribution Mark. I noticed this running the tests. This is temporary OK. -- resolution: - fixed stage: patch review - resolved status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Changes by Serhiy Storchaka storch...@gmail.com: Added file: http://bugs.python.org/file38279/issue19880v4.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Changes by Serhiy Storchaka storch...@gmail.com: Removed file: http://bugs.python.org/file38278/issue19880v4.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Mark Lawrence added the comment: Pang :( -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Mark Lawrence added the comment: Ping. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Mark Lawrence added the comment: I screwed up, sorry folks. If the latest patch isn't correct I give up as it's three strikes and I'm out :( -- Added file: http://bugs.python.org/file37565/issue19880v3.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Mark Lawrence added the comment: Did I test the last patch? I would hope so but I simply can't remember as it's nearly four months ago, sorry :( -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Zachary Ware added the comment: In that case, it would be good to make sure it still applies and passes the tests. Last time I tried it didn't, and I was called away before I could leave a note to that effect (for which I am sorry). However, I don't have a strong enough opinion on this issue for me to have fixed your patch or even to have kept it in mind to come back to later. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Mark Lawrence added the comment: Anybody? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Zachary Ware added the comment: Mark, did you test your latest patch? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Mark Lawrence added the comment: ping. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Changes by Ezio Melotti ezio.melo...@gmail.com: -- nosy: +ezio.melotti ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Mark Lawrence added the comment: I suppose that technically this can only go into 3.5, but is there any real reason that this couldn't be backported? -- versions: +Python 3.5 -Python 3.4 Added file: http://bugs.python.org/file36141/Issue19980.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Zachary Ware added the comment: Mark, would you like to update your patch to address my review comments? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Mark Lawrence added the comment: Can somebody set the stage to patch review and give my patch the once over please, thanks. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Changes by Terry J. Reedy tjre...@udel.edu: -- stage: needs patch - patch review ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Mark Lawrence added the comment: Please find attached a first pass at a patch file. Help('') produces help for the str class as discussed. I found the difference between help('help') and help() very confusing. The former produced the help output but left you at the interactive prompt, the latter took you to the help utility. Both now take you to the help utility. I've changed the test file but two test fail, here's the output from one as they're virtually identical. FAIL: test_input_strip (test.test_pydoc.PydocDocTest) -- Traceback (most recent call last): File c:\cpython\lib\test\test_pydoc.py, line 429, in test_input_strip self.assertEqual(expected, result) AssertionError: 'No P[49 chars]e\'.\nUse help(help) or just help() to get t[66 chars]ass.' != 'No P[49 chars]e\'.\r\nUse help(help) or just help() to get[70 chars]ass.' - No Python documentation found for 'test.i_am_not_here'. + No Python documentation found for 'test.i_am_not_here'. ?+ - Use help(help) or just help() to get the interactive help utility. + Use help(help) or just help() to get the interactive help utility. ? + Use help(str) for help on the str class. I can't see where the difference between the .\nUse and .\r\nUse is coming from so thought fresh eyes would do the job. -- Added file: http://bugs.python.org/file35472/issue19980.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Changes by Zachary Ware zachary.w...@gmail.com: -- nosy: +zach.ware ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Mark Lawrence added the comment: Anybody? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Jessica McKellar added the comment: @BreamoreBoy, thanks for following up on this! I propose the following. help('') returns help on strings in the same way that help([]) and help({}) returns help on lists and dicts respectively, Sounds good. further help(''.method) returns help on the string method or an attribute error, so this appears to me consistent. This already happens (which I think you are saying, but it's a bit confusing in reading your message which functionality you are proposing to add and which functionality you are restating that already exists). help('doh') returns enhanced output along the lines Terry suggested in msg206157. Sounds good. help('module') gives the path to the module as well as the help output, if any, as I think this could be useful in cases where you're looking for problems and have a stdlib module masked by a file of your own. I think you are stating the current functionality? Note that I've tried looking at the test code and it didn't make much sense to me, pointers welcome. Do you have specific questions? Terry suggests that help() tests for functionality using pydoc live in test_pydoc.py, and that help() tests for functionality not using pydoc live in test_site.py. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Mark Lawrence added the comment: I propose the following. help('') returns help on strings in the same way that help([]) and help({}) returns help on lists and dicts respectively, further help(''.method) returns help on the string method or an attribute error, so this appears to me consistent. help('doh') returns enhanced output along the lines Terry suggested in msg206157. help('module') gives the path to the module as well as the help output, if any, as I think this could be useful in cases where you're looking for problems and have a stdlib module masked by a file of your own. Thoughts? If we can come to an agreement I'll try and work up a patch. Note that I've tried looking at the test code and it didn't make much sense to me, pointers welcome. I've also just signed the contributor's agreement. -- nosy: +BreamoreBoy ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Elias Zamaria added the comment: Sorry for the late response but I have been busy with various things. I may be able to work on this but I don't know when or how long it will take me. I would suggest that someone else work on it if anyone wants it done any time soon. I am sorry about this. On Mon, Apr 14, 2014 at 7:43 AM, Jessica McKellar rep...@bugs.python.orgwrote: Jessica McKellar added the comment: Elias, thanks for your patch! I think it's important to add the second part of Terry's suggestion which gives the user a specific next step to take, namely: Try help('help') for information on recognized strings or help(str) for help on the str class. Can you add that to your patch? Additionally, we'll want to make sure we don't accidentally break this new functionality. Can you add a few test cases, for example what happens when you run help on a module (e.g. help(os), 2) help on an instance of a class (e.g. help(1)), and help on a string that doesn't have a special meaning, (e.g. help(abcxyz))? I don't see any existing tests for help(), but it is an instance of site._Helper (as reported by type(help)), and site tests live in Lib/test/test_site.py. It also gets loaded into builtins, so tests could also live in Lib/test/test_builtins.py. -- nosy: +Jessica.McKellar, jesstess ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Jessica McKellar added the comment: Elias, thanks for your patch! I think it's important to add the second part of Terry's suggestion which gives the user a specific next step to take, namely: Try help('help') for information on recognized strings or help(str) for help on the str class. Can you add that to your patch? Additionally, we'll want to make sure we don't accidentally break this new functionality. Can you add a few test cases, for example what happens when you run help on a module (e.g. help(os), 2) help on an instance of a class (e.g. help(1)), and help on a string that doesn't have a special meaning, (e.g. help(abcxyz))? I don't see any existing tests for help(), but it is an instance of site._Helper (as reported by type(help)), and site tests live in Lib/test/test_site.py. It also gets loaded into builtins, so tests could also live in Lib/test/test_builtins.py. -- nosy: +Jessica.McKellar, jesstess ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Terry J. Reedy added the comment: help() uses lib/pydoc.py and pydoc tests are in test/test_pydoc.py I think tests for things help does that pydoc does not do (help on topics?) should be in site.py. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Elias Zamaria added the comment: Here is a patch that addresses the empty string problem described by @BreamoreBoy. I am not sure if this is the best way to handle it but it is better than what we have now. -- Added file: http://bugs.python.org/file34281/empty-help-response.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Changes by Mark Lawrence breamore...@yahoo.co.uk: -- nosy: -BreamoreBoy ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Elias Zamaria added the comment: I have created a patch that fixes this issue that terry.reedy described. It does not fix the problem described BreamoreBoy involving the empty string. Please note that this is my first patch for Python so let me know if I am missing something or if I can do anything else to help. -- keywords: +patch nosy: +mikez302 Added file: http://bugs.python.org/file33251/help-response.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
New submission from Terry J. Reedy: help(1) # help on int help(b'a') # help on bytes help('a') no Python documentation found for 'a' The reason for this unhelpful response is that strings are treated differently from all other non-class objects. (msg205861 thought this a bug.) The strings value is matched against strings that would be recognized at the help prompt given after help(). help('topics') # list of TOPICS help('LISTS') # information about mutable sequences Suggestion: add something more about what to do. Example enhanced response: No Python documentation found for 'a'. Try help('help') for information on recognized strings or help(str) for help on the str class. I believe this could be backported since help() is intented for interactive use only. -- assignee: docs@python components: Documentation, Library (Lib) messages: 206157 nosy: docs@python, terry.reedy priority: normal severity: normal stage: needs patch status: open title: Improve help('non-topic') response type: enhancement versions: Python 3.4 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19980] Improve help('non-topic') response
Mark Lawrence added the comment: IMHO this must be changed. help('') # nothing!!! help('a') Help on module a: ... I happened to have a module called a.py in the default directory. -- nosy: +BreamoreBoy ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue19980 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com