[Python-checkins] gh-67248: cmd: Sort miscellaneous help topics (#92254)

JelleZijlstra webhook-mailer at python.org
Tue May 3 23:37:04 EDT 2022


https://github.com/python/cpython/commit/465fdc02a3c41cfe209e280c32a77c48e3a966fa
commit: 465fdc02a3c41cfe209e280c32a77c48e3a966fa
branch: main
author: Sam Denton <samwyse at gmail.com>
committer: JelleZijlstra <jelle.zijlstra at gmail.com>
date: 2022年05月03日T21:36:52-06:00
summary:
gh-67248: cmd: Sort miscellaneous help topics (#92254)
Closes #67248
files:
A Misc/NEWS.d/next/Library/2022-05-03-19-06-38.gh-issue-67248.DK61Go.rst
M Lib/cmd.py
M Lib/test/test_cmd.py
diff --git a/Lib/cmd.py b/Lib/cmd.py
index 859e91096d8f5..88ee7d3ddc469 100644
--- a/Lib/cmd.py
+++ b/Lib/cmd.py
@@ -310,10 +310,10 @@ def do_help(self, arg):
 names = self.get_names()
 cmds_doc = []
 cmds_undoc = []
- help = {}
+ topics = set()
 for name in names:
 if name[:5] == 'help_':
- help[name[5:]]=1
+ topics.add(name[5:])
 names.sort()
 # There can be duplicates if routines overridden
 prevname = ''
@@ -323,16 +323,16 @@ def do_help(self, arg):
 continue
 prevname = name
 cmd=name[3:]
- if cmd in help:
+ if cmd in topics:
 cmds_doc.append(cmd)
- del help[cmd]
+ topics.remove(cmd)
 elif getattr(self, name).__doc__:
 cmds_doc.append(cmd)
 else:
 cmds_undoc.append(cmd)
 self.stdout.write("%s\n"%str(self.doc_leader))
 self.print_topics(self.doc_header, cmds_doc, 15,80)
- self.print_topics(self.misc_header, list(help.keys()),15,80)
+ self.print_topics(self.misc_header, sorted(topics),15,80)
 self.print_topics(self.undoc_header, cmds_undoc, 15,80)
 
 def print_topics(self, header, cmds, cmdlen, maxcol):
diff --git a/Lib/test/test_cmd.py b/Lib/test/test_cmd.py
index 5e8b17c6e871a..319801c71f776 100644
--- a/Lib/test/test_cmd.py
+++ b/Lib/test/test_cmd.py
@@ -70,7 +70,7 @@ class samplecmdclass(cmd.Cmd):
 >>> mycmd.complete_help("12")
 []
 >>> sorted(mycmd.complete_help(""))
- ['add', 'exit', 'help', 'shell']
+ ['add', 'exit', 'help', 'life', 'meaning', 'shell']
 
 Test for the function do_help():
 >>> mycmd.do_help("testet")
@@ -79,12 +79,20 @@ class samplecmdclass(cmd.Cmd):
 help text for add
 >>> mycmd.onecmd("help add")
 help text for add
+ >>> mycmd.onecmd("help meaning") # doctest: +NORMALIZE_WHITESPACE
+ Try and be nice to people, avoid eating fat, read a good book every
+ now and then, get some walking in, and try to live together in peace
+ and harmony with people of all creeds and nations.
 >>> mycmd.do_help("")
 <BLANKLINE>
 Documented commands (type help <topic>):
 ========================================
 add help
 <BLANKLINE>
+ Miscellaneous help topics:
+ ==========================
+ life meaning
+ <BLANKLINE>
 Undocumented commands:
 ======================
 exit shell
@@ -115,17 +123,22 @@ class samplecmdclass(cmd.Cmd):
 This test includes the preloop(), postloop(), default(), emptyline(),
 parseline(), do_help() functions
 >>> mycmd.use_rawinput=0
- >>> mycmd.cmdqueue=["", "add", "add 4 5", "help", "help add","exit"]
- >>> mycmd.cmdloop()
+
+ >>> mycmd.cmdqueue=["add", "add 4 5", "", "help", "help add", "exit"]
+ >>> mycmd.cmdloop() # doctest: +REPORT_NDIFF
 Hello from preloop
- help text for add
 *** invalid number of arguments
 9
+ 9
 <BLANKLINE>
 Documented commands (type help <topic>):
 ========================================
 add help
 <BLANKLINE>
+ Miscellaneous help topics:
+ ==========================
+ life meaning
+ <BLANKLINE>
 Undocumented commands:
 ======================
 exit shell
@@ -165,6 +178,17 @@ def help_add(self):
 print("help text for add")
 return
 
+ def help_meaning(self):
+ print("Try and be nice to people, avoid eating fat, read a "
+ "good book every now and then, get some walking in, "
+ "and try to live together in peace and harmony with "
+ "people of all creeds and nations.")
+ return
+
+ def help_life(self):
+ print("Always look on the bright side of life")
+ return
+
 def do_exit(self, arg):
 return True
 
diff --git a/Misc/NEWS.d/next/Library/2022-05-03-19-06-38.gh-issue-67248.DK61Go.rst b/Misc/NEWS.d/next/Library/2022-05-03-19-06-38.gh-issue-67248.DK61Go.rst
new file mode 100644
index 0000000000000..8237934ccda00
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-05-03-19-06-38.gh-issue-67248.DK61Go.rst
@@ -0,0 +1 @@
+Sort the miscellaneous topics in Cmd.do_help()


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /