Clean up globals() for python interactive sessions

Previously the global namespace of all interactive python session were
polluted with all the stuff we did in this initialization script. For
example, globals()['__doc__'] would show the docstring from this file.

While none of this was ciritical, it could be confusing sometimes. So
this commit fixes that.
This commit is contained in:
Fernando Schauenburg 2020-02-26 16:36:32 +01:00
parent c0b024974a
commit fc5db841e3

View file

@ -1,16 +1,16 @@
"""Enable default readline configuration on interactive prompts, by # Improve interactive prompts by configuring readline. This is done by
registering a sys.__interactivehook__. # registering a custom hook as sys.__interactivehook__.
#
If the readline module can be imported, the hook will set the Tab key as # If the readline module can be imported, the hook will:
completion key and register a history file, using # 1. Set the Tab key as completion key.
$XDG_CACHE_HOME/python/history if XDG_CACHE_HOME iset and .python_history # 2. Initialize readline (e.g. from .inputrc).
otherwise. # 3. Register a history file, using:
""" # - $XDG_CACHE_HOME/python/history if XDG_CACHE_HOME iset
import os # - .python_history otherwise.
import sys def configure_readline():
def register_readline():
import atexit import atexit
import os
try: try:
import readline import readline
import rlcompleter import rlcompleter
@ -64,5 +64,6 @@ def register_readline():
atexit.register(write_history) atexit.register(write_history)
sys.__interactivehook__ = register_readline import sys
sys.__interactivehook__ = configure_readline
del sys, configure_readline # we don't want any of this in globals()