Commit Graph

347 Commits

Author SHA1 Message Date
R David Murray 1058cda38f #23792: Ignore KeyboardInterrupt when the pydoc pager is active.
Previously, if you hit ctl-c while the pager was active, the python that
launched the subprocess for the pager would see the KeyboardInterrupt in the
__exit__ method of the subprocess context manager where it was waiting for the
subprocess to complete, ending the wait.  This would leave the pager running,
while the interactive interpreter, after handling the exception by printing
it, would go back to trying to post a prompt...but the pager would generally
have the terminal in raw mode, and in any case would be still trying to read
from stdin.  On some systems, even exiting python at that point would not
restore the terminal mode.  The problem with raw mode could also happen if
ctl-C was hit when pydoc was called from the shell command line and the pager
was active.

Instead, we now wait on the subprocess in a loop, ignoring KeyboardInterrupt
just like the pager does, until the pager actually exits.

(Note: this was a regression relative to python2...in python2 the pager
is called via system, and system does not return until the pager exits.)
2015-03-29 15:15:40 -04:00
Serhiy Storchaka 1c205518a3 Issue #19980: Improved help() for non-recognized strings. help('') now
shows the help on str.  help('help') now shows the help on help().
Original patch by Mark Lawrence.
2015-03-01 00:42:54 +02:00
Serhiy Storchaka 7065f376e0 Issue #23374: Fixed pydoc failure with non-ASCII files when stdout encoding
differs from file system encoding (e.g. on Mac OS).
2015-02-20 23:47:09 +02:00
Serhiy Storchaka 5e3d7a401d Issue #23374: Fixed pydoc failure with non-ASCII files when stdout encoding
differs from file system encoding (e.g. on Mac OS).
2015-02-20 23:46:06 +02:00
Benjamin Peterson 77c041ba64 merge 3.4 (#21548) 2015-02-16 19:45:42 -05:00
Benjamin Peterson 54237f9fea fix pydoc.apropos and pydoc.synopsis on modules with empty docstrings (#21548)
Patch by Yuyang Guo and Berker Peksag.
2015-02-16 19:45:01 -05:00
Serhiy Storchaka ab5e9b9213 Issue #22314: pydoc now works when the LINES environment variable is set. 2014-11-28 00:09:29 +02:00
Serhiy Storchaka f1fc9fb33d Issue #22314: pydoc now works when the LINES environment variable is set. 2014-11-28 00:11:07 +02:00
Serhiy Storchaka 0ff742ce2b Issue #20662: Argspec now is escaped in html output of pydoc. 2014-11-17 23:48:35 +02:00
Serhiy Storchaka 66dd4aaa96 Issue #20662: Argspec now is escaped in html output of pydoc. 2014-11-17 23:48:02 +02:00
Georg Brandl 61bd1dcf9b Move Doc/tools/sphinxext content to Doc/tools, there is no need for the nested subdirectory anymore. 2014-09-30 22:56:38 +02:00
Georg Brandl 97e9ec688c Move Doc/tools/sphinxext content to Doc/tools, there is no need for the nested subdirectory anymore. 2014-09-30 22:51:30 +02:00
Senthil Kumaran 810dc9bc81 Merge from 3.4
Issue #22421 - Secure pydoc server run. Bind it to localhost instead of all interfaces.
2014-09-17 13:19:34 +08:00
Senthil Kumaran aa72b1b448 Merge from 3.3
Issue #22421 - Secure pydoc server run. Bind it to localhost instead of all interfaces.
2014-09-17 13:19:01 +08:00
Senthil Kumaran 2a42a0bff3 Issue #22421 - Secure pydoc server run. Bind it to localhost instead of all interfaces. 2014-09-17 13:17:58 +08:00
Serhiy Storchaka 465e60e654 Issue #22033: Reprs of most Python implemened classes now contain actual
class name instead of hardcoded one.
2014-07-25 23:36:00 +03:00
Zachary Ware fff80d984c Issue #21942: Fixed source file viewing in pydoc's server mode on Windows. 2014-07-10 11:21:01 -05:00
Zachary Ware eb43214427 Issue #21942: Fixed source file viewing in pydoc's server mode on Windows. 2014-07-10 11:18:00 -05:00
Benjamin Peterson eac219436c merge 3.4 (#11709) 2014-06-07 20:17:29 -07:00
Benjamin Peterson 159824ea2a make sure the builtin help function doesn't fail when sys.stdin is not a valid file (closes #11709)
Original patch by Amaury Forgeot d'Arc with a test by bdettmer.
2014-06-07 20:14:26 -07:00
Benjamin Peterson 9d19da701d merge 3.4 (#13223) 2014-06-07 16:47:15 -07:00
Benjamin Peterson ed1160b39c don't remove self from example code in the HTML output (closes #13223)
Patch by Víctor Terrón.
2014-06-07 16:44:00 -07:00
Brett Cannon 2a17bde930 Issue #20383: Introduce importlib.util.module_from_spec().
Along the way, dismantle importlib._bootstrap._SpecMethods as it was
no longer relevant and constructing the new function required
partially dismantling the class anyway.
2014-05-30 14:55:29 -04:00
Serhiy Storchaka 5bb446f57e Issue #18918: Removed non-existing topic from a list of available topics.
The 'File objects' section was removed in Python 3.
Patch by Claudiu Popa.
2014-05-25 13:04:13 +03:00
Victor Stinner 0cc45baa3d Issue #21398: Fix an unicode error in the pydoc pager when the documentation
contains characters not encodable to the stdout encoding.
2014-05-13 02:05:35 +02:00
R David Murray 3d050ddf19 #9364: Improve the text printed by help(pydoc) and help(help). 2014-04-19 12:59:30 -04:00
Victor Stinner 7fa767e517 Issue #20976: pyflakes: Remove unused imports 2014-03-20 09:16:38 +01:00
Larry Hastings 24a882bb7b Issue #20710: The pydoc summary line no longer displays the "self" parameter
for bound methods.  Previous to this change, it displayed "self" for methods
implemented in Python but not methods implemented in C; it is now both
internally consistent and consistent with inspect.Signature.
2014-02-20 23:34:46 -08:00
Serhiy Storchaka 056eb02719 Issue #20654: Fixed pydoc for enums with zero value. Patch by Vajrasky Kok. 2014-02-19 23:05:12 +02:00
Larry Hastings 5c66189e88 Issue #20189: Four additional builtin types (PyTypeObject,
PyMethodDescr_Type, _PyMethodWrapper_Type, and PyWrapperDescr_Type)
have been modified to provide introspection information for builtins.
Also: many additional Lib, test suite, and Argument Clinic fixes.
2014-01-24 06:17:25 -08:00
Eric Snow 3a62d14b24 Issue #19703: Update pydoc to use the new importer APIs. 2014-01-06 20:42:59 -07:00
Eric Snow aed5b22ead Issue 20123: Fix pydoc.synopsis() for "binary" modules.
Also add missing tests to test_pydoc.
2014-01-04 20:38:11 -07:00
Larry Hastings 44e2eaab54 Issue #19674: inspect.signature() now produces a correct signature
for some builtins.
2013-11-23 15:37:55 -08:00
Eric Snow b523f8433a Implement PEP 451 (ModuleSpec). 2013-11-22 09:05:39 -07:00
Ethan Furman b0c84cdaac Issue #19030: final pieces for proper location of various class attributes located in the metaclass.
Okay, hopefully the very last patch for this issue.  :/

I realized when playing with Enum that the metaclass attributes weren't always displayed properly.

New patch properly locates DynamicClassAttributes, virtual class attributes (returned by __getattr__ and friends), and metaclass class attributes (if they are also in the metaclass __dir__ method).

Also had to change one line in pydoc to get this to work.

Added tests in test_inspect and test_pydoc to cover these situations.
2013-10-20 22:37:39 -07:00
Brett Cannon 1448ecf470 Issue #18716: Deprecate the formatter module 2013-10-04 11:38:59 -04:00
Brett Cannon 679ecb565b Issue #15767: back out 8a0ed9f63c6e, finishing the removal of
ModuleNotFoundError.
2013-07-04 17:51:50 -04:00
Brett Cannon cd171c8e92 Issue #18200: Back out usage of ModuleNotFoundError (8d28d44f3a9a) 2013-07-04 17:43:24 -04:00
Brett Cannon f4ba4ec160 Issue #17177: Stop using imp in pydoc 2013-06-15 14:25:04 -04:00
Brett Cannon 0a140668fa Issue #18200: Update the stdlib (except tests) to use
ModuleNotFoundError.
2013-06-13 20:57:26 -04:00
Brett Cannon b1611e2772 Issue #15767: Introduce ModuleNotFoundError, a subclass of
ImportError.

The exception is raised by import when a module could not be found.
Technically this is defined as no viable loader could be found for the
specified module. This includes ``from ... import`` statements so that
the module usage is consistent for all situations where import
couldn't find what was requested.

This should allow for the common idiom of::

  try:
    import something
  except ImportError:
    pass

to be updated to using ModuleNotFoundError and not accidentally mask
ImportError messages that should propagate (e.g. issues with a
loader).

This work was driven by the fact that the ``from ... import``
statement needed to be able to tell the difference between an
ImportError that simply couldn't find a module (and thus silence the
exception so that ceval can raise it) and an ImportError that
represented an actual problem.
2013-06-12 16:59:46 -04:00
Brett Cannon d5e6f2e200 Issue #18157: stop using imp.load_module() in imp. 2013-06-11 17:09:36 -04:00
Ezio Melotti 72b8502992 #11182: remove the unused and undocumented pydoc.Scanner class. Patch by Martin Morrison. 2013-04-19 02:53:12 +03:00
R David Murray ac0cea5fab Merge: #17476: make allmethods actually return all methods.
This fixes a regression relative to Python2.  (In 2, methods on a class were
unbound methods and matched the inspect queries being done, in 3 they are just
functions and so were missed).

This is an undocumented function that pydoc itself does not use, but
I found that numpy at least uses it in its documentation generator.

Original patch by Matt Bachmann.
2013-03-19 02:47:44 -04:00
R David Murray 52dfc74080 #17476: make allmethods actually return all methods.
This fixes a regression relative to Python2.  (In 2, methods on a class were
unbound methods and matched the inspect queries being done, in 3 they are just
functions and so were missed).

This is an undocumented function that pydoc itself does not use, but
I found that numpy at least uses it in its documentation generator.

Original patch by Matt Bachmann.
2013-03-19 02:32:35 -04:00
R David Murray 9929bc543a #17476: make allmethods actually return all methods.
This fixes a regression relative to Python2.  (In 2, methods on a class were
unbound methods and matched the inspect queries being done, in 3 they are just
functions and so were missed).

This is an undocumented function that pydoc itself does not use, but
I found that numpy at least uses it in its documentation generator.

Original patch by Matt Bachmann.
2013-03-19 02:31:06 -04:00
Giampaolo Rodola' 2f50aaf2ff modernize some modules' code by using with statement around open() 2013-02-12 02:04:27 +01:00
Terry Jan Reedy 3420057adb Closes #17158: Add 'symbols' to help() welcome message; clarify 'modules spam'
messages.
2013-02-11 02:23:13 -05:00
Andrew Svetlov f7a17b48d7 Replace IOError with OSError (#16715) 2012-12-25 16:47:37 +02:00
Benjamin Peterson 29e02a2be8 merge 3.3 2012-10-09 11:16:13 -04:00
Benjamin Peterson b29614e047 compare singletons by identity not equality (closes #16712)
Patch from Serhiy Storchaka.
2012-10-09 11:16:03 -04:00
Jesus Cea 4791a24268 #16135: Removal of OS/2 support (Python code partial cleanup) 2012-10-05 03:15:39 +02:00
Brett Cannon d340b43d75 Issue #15163: Pydoc shouldn't show __loader__ as a part of a module's
data.

Also alphabetized the attributes in the blacklist to make it easier to
detect changes.

Initial patch by Éric Araujo.
2012-08-06 17:19:22 -04:00
Nick Coghlan 9deaa06fe1 Issue #9319: Remove the workaround for this since fixed problem from pydoc 2012-07-15 22:17:02 +10:00
Nick Coghlan 2824cb507d Issue #15343: A lot more than just unicode decoding can go wrong when retrieving a source file 2012-07-15 22:12:14 +10:00
Georg Brandl c645c6ada1 Closes #15162: the meaning of "online" has shifted a bit in recent years, use "interactive" instead. 2012-06-24 17:24:26 +02:00
Vinay Sajip 7ded1f0f69 Implemented PEP 405 (Python virtual environments). 2012-05-26 03:45:29 +01:00
Antoine Pitrou ea3eb88bca Issue #9260: A finer-grained import lock.
Most of the import sequence now uses per-module locks rather than the
global import lock, eliminating well-known issues with threads and imports.
2012-05-17 18:55:59 +02:00
Brett Cannon cb66eb0dec Issue #13959: Deprecate imp.get_suffixes() for new attributes on
importlib.machinery that provide the suffix details for import.
The attributes were not put on imp so as to compartmentalize
everything importlib needs for setting up imports in
importlib.machinery.

This also led to an indirect deprecation of inspect.getmoduleinfo() as
it directly returned imp.get_suffix's returned tuple which no longer
makes sense.
2012-05-11 12:58:42 -04:00
R David Murray a82c960c17 merge #14638: pydoc now treats non-str __name__ as None instead of raising
Original patch by Peter Otten.
2012-04-23 13:26:44 -04:00
R David Murray c43125a05c #14638: pydoc now treats non-str __name__ as None instead of raising
Original patch by Peter Otten.
2012-04-23 13:23:57 -04:00
Brett Cannon fd0741555b Issue #2377: Make importlib the implementation of __import__().
importlib._bootstrap is now frozen into Python/importlib.h and stored
as _frozen_importlib in sys.modules. Py_Initialize() loads the frozen
code along with sys and imp and then uses _frozen_importlib._install()
to set builtins.__import__() w/ _frozen_importlib.__import__().
2012-04-14 14:10:13 -04:00
R David Murray 8613b0dea4 Merge #14434: make tutorial link in 'help' banner version-specific
Without this fix, both 2.7 and 3.x would always point to the "current"
docs...which means that before this fix python 3.2 'help' pointed to the 2.7
tutorial.
2012-03-31 12:08:59 -04:00
R David Murray de0f6297a7 #14434: make tutorial link in 'help' banner version-specific
Without this fix, both 2.7 and 3.x would always point to the "current"
docs...which means that before this fix python 3.2 'help' pointed to the 2.7
tutorial.
2012-03-31 12:06:35 -04:00
Antoine Pitrou 86a8a9ae98 Issue #1785: Fix inspect and pydoc with misbehaving descriptors.
Also fixes issue #13581: `help(type)` wouldn't display anything.
2011-12-21 09:57:40 +01:00
Antoine Pitrou 12f65d1fef Issue #1785: Fix inspect and pydoc with misbehaving descriptors.
Also fixes issue #13581: `help(type)` wouldn't display anything.
2011-12-21 09:59:49 +01:00
Antoine Pitrou 86a36b500a PEP 3155 / issue #13448: Qualified name for classes and functions. 2011-11-25 18:56:07 +01:00
Florent Xicluna aabbda5354 Merge 3.2 2011-10-28 14:52:29 +02:00
Florent Xicluna 5d1155c08e Closes #13258: Use callable() built-in in the standard library. 2011-10-28 14:45:05 +02:00
Éric Araujo 4c3124c2b9 Merge 3.2 2011-09-12 17:41:24 +02:00
Éric Araujo 647ef8cd68 Wrap pydoc output under 80 characters 2011-09-11 00:43:20 +02:00
Éric Araujo c473f8ceac Merge fix for #8887 from 3.2 2011-07-29 17:38:23 +02:00
Éric Araujo e64e51bfa7 Make “pydoc somebuiltin.somemethod” work (#8887) 2011-07-29 17:03:55 +02:00
Charles-François Natali 7a2f0c7802 Issue #12603: Fix pydoc.synopsis() on files with non-negative st_mtime. 2011-07-27 19:42:05 +02:00
Charles-François Natali 27c4e88552 Issue #12603: Fix pydoc.synopsis() on files with non-negative st_mtime. 2011-07-27 19:40:02 +02:00
Victor Stinner d7772bc4cb (merge 3.2) Issue #12451: pydoc: html_getfile() now uses tokenize.open() to
support Python scripts using a encoding different than UTF-8 (read the coding
cookie of the script).
2011-07-05 14:31:28 +02:00
Victor Stinner 91e08772a6 Issue #12451: pydoc: html_getfile() now uses tokenize.open() to support Python
scripts using a encoding different than UTF-8 (read the coding cookie of the
script).
2011-07-05 14:30:41 +02:00
Victor Stinner 5f9a995ad7 (merge 3.2) Issue #12451: pydoc: importfile() now opens the Python script in
binary mode, instead of text mode using the locale encoding, to avoid encoding
issues.
2011-07-04 02:09:44 +02:00
Victor Stinner e975af62f2 Issue #12451: pydoc: importfile() now opens the Python script in binary mode,
instead of text mode using the locale encoding, to avoid encoding issues.
2011-07-04 02:08:50 +02:00
Victor Stinner 319672e8a6 (merge 3.2) Issue #12451: pydoc.synopsis() now reads the encoding cookie if
available, to read the Python script from the right encoding.
2011-06-30 15:58:29 +02:00
Victor Stinner e6c910e953 Issue #12451: pydoc.synopsis() now reads the encoding cookie if available, to
read the Python script from the right encoding.
2011-06-30 15:55:43 +02:00
Benjamin Peterson 8c6f88efa2 remove __version__s dependent on subversion keyword expansion (closes #12221) 2011-05-31 20:52:17 -05:00
Victor Stinner 6daa33c8ac Issue #10818: Remove deprecated pydoc.serve() function
The pydoc module has a new enhanced web server.
2011-05-25 01:41:22 +02:00
Victor Stinner 383c3fc6b4 Issue #10818: Remove the Tk GUI of the pydoc module (pydoc -g has been
deprecated in Python 3.2).
2011-05-25 01:35:05 +02:00
Ezio Melotti 60811c215f #11926: merge with 3.2. 2011-04-28 07:55:29 +03:00
Ezio Melotti 44aad855dd #11926: merge with 3.1. 2011-04-28 07:51:14 +03:00
Ezio Melotti b185a04aa1 #11926: add missing keywords to help("keywords"). 2011-04-28 07:42:55 +03:00
Victor Stinner 4d65224f68 Issue #11186: pydoc ignores a module if its name contains a surrogate character
in the index of modules.
2011-04-12 23:41:50 +02:00
Raymond Hettinger 007bdbd7ab Issue #11666: Teach pydoc to display full help for named tuples 2011-03-25 14:16:13 -07:00
Raymond Hettinger 1103d05775 Issue #11666: Teach pydoc to display full help for named tuples 2011-03-25 14:15:24 -07:00
Raymond Hettinger 6827294e05 Speed-up search for hidden names by using a set instead of a tuple. 2011-03-18 02:22:15 -07:00
Georg Brandl f6c8fd62b9 Merged revisions 86537,86867-86868,86881,86887,86913-86915,86931-86933,86960,86964,86974,86980,86996,87008,87050 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k

........
  r86537 | georg.brandl | 2010-11-19 23:09:04 +0100 (Fr, 19 Nov 2010) | 1 line

  Do not put a raw REPLACEMENT CHARACTER in the document.
........
  r86867 | georg.brandl | 2010-11-29 15:50:54 +0100 (Mo, 29 Nov 2010) | 1 line

  Fix indentation bug.
........
  r86868 | georg.brandl | 2010-11-29 15:53:15 +0100 (Mo, 29 Nov 2010) | 1 line

  Fix heading style inconsistencies.
........
  r86881 | georg.brandl | 2010-11-30 08:43:28 +0100 (Di, 30 Nov 2010) | 1 line

  #10584: fix bad links.
........
  r86887 | georg.brandl | 2010-11-30 15:57:54 +0100 (Di, 30 Nov 2010) | 1 line

  Fix typo.
........
  r86913 | georg.brandl | 2010-12-01 16:32:43 +0100 (Mi, 01 Dez 2010) | 1 line

  Add missing word, and add a better reference to the actual function.
........
  r86914 | georg.brandl | 2010-12-01 16:36:33 +0100 (Mi, 01 Dez 2010) | 1 line

  #10594: fix parameter names in PyList API docs.
........
  r86915 | georg.brandl | 2010-12-01 16:44:25 +0100 (Mi, 01 Dez 2010) | 1 line

  Fix some markup and style in the unittest docs.
........
  r86931 | georg.brandl | 2010-12-02 10:06:12 +0100 (Do, 02 Dez 2010) | 1 line

  Fix-up documentation of makedirs().
........
  r86932 | david.malcolm | 2010-12-02 17:41:00 +0100 (Do, 02 Dez 2010) | 2 lines

  Fix spelling of Jamie Zawinski's surname in urllib.parse docstring (issue 10606)
........
  r86933 | georg.brandl | 2010-12-02 19:02:01 +0100 (Do, 02 Dez 2010) | 1 line

  #10597: fix Py_SetPythonHome docs by pointing to where the meaning of PYTHONHOME is already documented.
........
  r86960 | georg.brandl | 2010-12-03 08:55:44 +0100 (Fr, 03 Dez 2010) | 1 line

  #10360: catch TypeError in WeakSet.__contains__, just like WeakKeyDictionary does.
........
  r86964 | georg.brandl | 2010-12-03 10:58:38 +0100 (Fr, 03 Dez 2010) | 1 line

  #10549: fix interface of docclass() for text documenter.
........
  r86974 | georg.brandl | 2010-12-03 16:30:09 +0100 (Fr, 03 Dez 2010) | 1 line

  Markup consistency fixes.
........
  r86980 | georg.brandl | 2010-12-03 18:19:27 +0100 (Fr, 03 Dez 2010) | 1 line

  Fix punctuation.
........
  r86996 | georg.brandl | 2010-12-03 20:56:42 +0100 (Fr, 03 Dez 2010) | 1 line

  Fix indentation.
........
  r87008 | georg.brandl | 2010-12-04 10:04:04 +0100 (Sa, 04 Dez 2010) | 1 line

  Fix typo.
........
  r87050 | georg.brandl | 2010-12-04 18:09:30 +0100 (Sa, 04 Dez 2010) | 1 line

  Fix typo.
........
2011-02-25 09:48:21 +00:00
Georg Brandl d2f3857c40 #10961: fix exception handling in new pydoc server code.
Patch by Ron Adam, reviewed by Eric Araujo.
2011-01-30 08:37:19 +00:00
Alexander Belopolsky 7be05b221d Merged revisions 82547 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r82547 | alexander.belopolsky | 2010-07-04 13:00:20 -0400 (Sun, 04 Jul 2010) | 3 lines

  Issue #9118: help(None) will now return NoneType doc instead of
  starting interactive help.
........
2011-01-11 15:23:22 +00:00
Victor Stinner a3abd1d240 pydoc: close the DocServer when done 2011-01-03 16:12:39 +00:00
Georg Brandl cbd2ab1311 #1513299: cleanup some map() uses where a comprehension works better. 2010-12-04 10:39:14 +00:00
Nick Coghlan ecace28ef4 Handle Windows paths and don't double up on HTML header sections in new pydoc URL handler 2010-12-03 16:08:46 +00:00
Georg Brandl 9bd45f995f #10549: fix interface of docclass() for text documenter. 2010-12-03 09:58:38 +00:00
Nick Coghlan 7bb30b72d8 Improve Pydoc interactive browsing (#2001). Patch by Ron Adam.
* A -b option to start an enhanced browsing session.
* Allow -b and -p options to be used together.
* Specifying port 0 will pick an arbitrary unused socket port.
* A new browse() function to start the new server and browser.
* Show Python version information in the header.
* A *Get* field which takes the same input as the help() function.
* A *Search* field which replaces the Tkinter search box.
* Links to *Module Index*, *Topics*, and *Keywords*.
* Improved source file viewing.
* An HTMLDoc.filelink() method.
* The -g option and the gui() and serve() functions are deprecated.
2010-12-03 09:29:11 +00:00
Georg Brandl d80d5f4ee8 #940286: pydoc.Helper.help() ignores input/output init parameters. 2010-12-03 07:47:22 +00:00