diff options
author | Neil Schemenauer <nas-github@arctrix.com> | 2025-04-28 21:17:34 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-28 21:17:34 (GMT) |
commit | 68a737691b0fd591de00f4811bb23a5c280fe859 (patch) | |
tree | 70ffe459b397b7d3cb7c055181f99385ac32c498 /Lib/pydoc.py | |
parent | 31a500a92b1baf49a21d15b6b5fc0b6095f1e305 (diff) | |
download | cpython-68a737691b0fd591de00f4811bb23a5c280fe859.zip cpython-68a737691b0fd591de00f4811bb23a5c280fe859.tar.gz cpython-68a737691b0fd591de00f4811bb23a5c280fe859.tar.bz2 |
gh-125142: add REPL help text for keyboard shortcuts (gh-125143)
Diffstat (limited to 'Lib/pydoc.py')
-rw-r--r-- | Lib/pydoc.py | 50 |
1 files changed, 33 insertions, 17 deletions
diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 169194b..def76d0 100644 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -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)) |