import re
import sys
import sysconfig
+import textwrap
import time
import tokenize
import urllib.parse
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
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))