gh-125142: add REPL help text for keyboard shortcuts (gh-125143)

This commit is contained in:
Neil Schemenauer 2025-04-28 14:17:34 -07:00 committed by GitHub
parent 31a500a92b
commit 68a737691b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 35 additions and 17 deletions

View file

@ -68,6 +68,7 @@ import platform
import re
import sys
import sysconfig
import textwrap
import time
import tokenize
import urllib.parse
@ -1809,6 +1810,37 @@ def writedocs(dir, pkgpath='', done=None):
writedoc(modname)
return
def _introdoc():
import textwrap
ver = '%d.%d' % sys.version_info[:2]
if os.environ.get('PYTHON_BASIC_REPL'):
pyrepl_keys = ''
else:
# Additional help for keyboard shortcuts if enhanced REPL is used.
pyrepl_keys = '''
You can use the following keyboard shortcuts at the main interpreter prompt.
F1: enter interactive help, F2: enter history browsing mode, F3: enter paste
mode (press again to exit).
'''
return textwrap.dedent(f'''\
Welcome to Python {ver}'s help utility! If this is your first time using
Python, you should definitely check out the tutorial at
https://docs.python.org/{ver}/tutorial/.
Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules. To get a list of available
modules, keywords, symbols, or topics, enter "modules", "keywords",
"symbols", or "topics".
{pyrepl_keys}
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",
enter "modules spam".
To quit this help utility and return to the interpreter,
enter "q", "quit" or "exit".
''')
class Helper:
# These dictionaries map a topic name to either an alias, or a tuple
@ -2075,23 +2107,7 @@ has the same effect as typing a particular string at the help> prompt.
self.output.write('\n')
def intro(self):
self.output.write('''\
Welcome to Python {0}'s help utility! If this is your first time using
Python, you should definitely check out the tutorial at
https://docs.python.org/{0}/tutorial/.
Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules. To get a list of available
modules, keywords, symbols, or topics, enter "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",
enter "modules spam".
To quit this help utility and return to the interpreter,
enter "q", "quit" or "exit".
'''.format('%d.%d' % sys.version_info[:2]))
self.output.write(_introdoc())
def list(self, items, columns=4, width=80):
items = list(sorted(items))