whatsnew: sys.__interactivehook__. (#5845)
authorR David Murray <rdmurray@bitdance.com>
Sun, 9 Mar 2014 16:03:30 +0000 (12:03 -0400)
committerR David Murray <rdmurray@bitdance.com>
Sun, 9 Mar 2014 16:03:30 +0000 (12:03 -0400)
I decided to leave the (slightly expanded) Other Improvements
entry as well, since someone looking for command line behavior
changes isn't going to look in the 'sys' module section.

Doc/library/site.rst
Doc/library/sys.rst
Doc/whatsnew/3.4.rst

index d93e938b5c90dfbb352fb47c64323c9b9f28c055..2fdf303c8898bbfcaf481d58558388acbab9055f 100644 (file)
@@ -123,9 +123,13 @@ On systems that support :mod:`readline`, this module will also import and
 configure the :mod:`rlcompleter` module, if Python is started in
 :ref:`interactive mode <tut-interactive>` and without the :option:`-S` option.
 The default behavior is enable tab-completion and to use
-:file:`~/.python_history` as the history save file.  To disable it, override
-the :data:`sys.__interactivehook__` attribute in your :mod:`sitecustomize`
-or :mod:`usercustomize` module or your :envvar:`PYTHONSTARTUP` file.
+:file:`~/.python_history` as the history save file.  To disable it, delete (or
+override) the :data:`sys.__interactivehook__` attribute in your
+:mod:`sitecustomize` or :mod:`usercustomize` module or your
+:envvar:`PYTHONSTARTUP` file.
+
+.. versionchanged:: 3.4
+   Activation of rlcompleter and history was made automatic.
 
 
 Module contents
index 5ff7178d6f28c4389b9886fcb33debcb93a2693d..ab612c27dbe3884a4dd165ddf30de0db7d4e259e 100644 (file)
@@ -692,10 +692,11 @@ always available.
 
 .. data:: __interactivehook__
 
-   When present, this function is automatically called (with no arguments)
-   when the interpreter is launched in :ref:`interactive mode <tut-interactive>`.
-   This is done after the :envvar:`PYTHONSTARTUP` file is read, so that you
-   can set this hook there.
+   When this attribute exists, its value is automatically called (with no
+   arguments) when the interpreter is launched in :ref:`interactive mode
+   <tut-interactive>`.  This is done after the :envvar:`PYTHONSTARTUP` file is
+   read, so that you can set this hook there.  The :mod:`site` module
+   :ref:`sets this <rlcompleter-config>`.
 
    .. versionadded:: 3.4
 
index 7681fae7e73085bae25b62794375bd85ccc34b54..c8791e44edf8a9556147d94f1fd1111544215b59 100644 (file)
@@ -1360,6 +1360,19 @@ blocks allocated by the interpreter (in CPython with the default
 especially if automated via a test suite.  (Contributed by Antoine Pitrou
 in :issue:`13390`.)
 
+When the Python interpreter starts in :ref:`interactive mode
+<tut-interactive>`, it checks for an :data:`~sys.__interactivehook__` attribute
+on the :mod:`sys` module.  If the attribute exists, its value is called with no
+arguments just before interactive mode is started.  The check is made after the
+:envvar:`PYTHONSTARTUP` file is read, so it can be set there.  The :mod:`site`
+module :ref:`sets it <rlcompleter-config>` to a function that enables tab
+completion and history saving (in :file:`~/.python-history`) if the platform
+supports :mod:`readline`.  If you do not want this (new) behavior, you can
+override it in :envvar:`PYTHONSTARTUP`, :mod:`sitecustomize`, or
+:mod:`usercustomize` by deleting this attribute from :mod:`sys` (or setting it
+to some other callable).  (Contributed by Éric Araujo and Antoine Pitrou in
+:issue:`5845`.)
+
 
 textwrap
 --------
@@ -1694,7 +1707,9 @@ Other Improvements
   most POSIX systems it can and should be used in the ``#!`` line of system
   scripts.  (Contributed by Christian Heimes in :issue:`16499`.)
 
-* Tab-completion is now enabled by default in the interactive interpreter.
+* Tab-completion is now enabled by default in the interactive interpreter
+  on systems that support :mod:`readline`.  History is also enabled by default,
+  and is written to (and read from) the file :file:`~/.python-history`.
   (Contributed by Antoine Pitrou and Éric Araujo in :issue:`5845`.)
 
 * Invoking the Python interpreter with ``--version`` now outputs the version to