Mercurial > public > mercurial-scm > hg-stable
diff mercurial/help.py @ 43076:2372284d9457
formatting: blacken the codebase
This is using my patch to black
(https://github.com/psf/black/pull/826) so we don't un-wrap collection
literals.
Done with:
hg files 'set:**.py - mercurial/thirdparty/** - "contrib/python-zstandard/**"' | xargs black -S
# skip-blame mass-reformatting only
# no-check-commit reformats foo_bar functions
Differential Revision: https://phab.mercurial-scm.org/D6971
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 06 Oct 2019 09:45:02 -0400 |
parents | 9d31581cc44e |
children | 687b865b95ad |
line wrap: on
line diff
--- a/mercurial/help.py Sat Oct 05 10:29:34 2019 -0400 +++ b/mercurial/help.py Sun Oct 06 09:45:02 2019 -0400 @@ -34,12 +34,8 @@ ui as uimod, util, ) -from .hgweb import ( - webcommands, -) -from .utils import ( - compression, -) +from .hgweb import webcommands +from .utils import compression _exclkeywords = { "(ADVANCED)", @@ -64,7 +60,7 @@ registrar.command.CATEGORY_CHANGE_MANAGEMENT, registrar.command.CATEGORY_CHANGE_ORGANIZATION, registrar.command.CATEGORY_FILE_CONTENTS, - registrar.command.CATEGORY_CHANGE_NAVIGATION , + registrar.command.CATEGORY_CHANGE_NAVIGATION, registrar.command.CATEGORY_WORKING_DIRECTORY, registrar.command.CATEGORY_IMPORT_EXPORT, registrar.command.CATEGORY_MAINTENANCE, @@ -77,14 +73,12 @@ # Extensions with custom categories should add their names here. CATEGORY_NAMES = { registrar.command.CATEGORY_REPO_CREATION: 'Repository creation', - registrar.command.CATEGORY_REMOTE_REPO_MANAGEMENT: - 'Remote repository management', + registrar.command.CATEGORY_REMOTE_REPO_MANAGEMENT: 'Remote repository management', registrar.command.CATEGORY_COMMITTING: 'Change creation', registrar.command.CATEGORY_CHANGE_NAVIGATION: 'Change navigation', registrar.command.CATEGORY_CHANGE_MANAGEMENT: 'Change manipulation', registrar.command.CATEGORY_CHANGE_ORGANIZATION: 'Change organization', - registrar.command.CATEGORY_WORKING_DIRECTORY: - 'Working directory management', + registrar.command.CATEGORY_WORKING_DIRECTORY: 'Working directory management', registrar.command.CATEGORY_FILE_CONTENTS: 'File content management', registrar.command.CATEGORY_IMPORT_EXPORT: 'Change import/export', registrar.command.CATEGORY_MAINTENANCE: 'Repository maintenance', @@ -124,6 +118,7 @@ TOPIC_CATEGORY_NONE: 'Uncategorized topics', } + def listexts(header, exts, indent=1, showdeprecated=False): '''return a text listing of the given extensions''' rst = [] @@ -136,15 +131,25 @@ rst.insert(0, '\n%s\n\n' % header) return rst + def extshelp(ui): rst = loaddoc('extensions')(ui).splitlines(True) - rst.extend(listexts( - _('enabled extensions:'), extensions.enabled(), showdeprecated=True)) - rst.extend(listexts(_('disabled extensions:'), extensions.disabled(), - showdeprecated=ui.verbose)) + rst.extend( + listexts( + _('enabled extensions:'), extensions.enabled(), showdeprecated=True + ) + ) + rst.extend( + listexts( + _('disabled extensions:'), + extensions.disabled(), + showdeprecated=ui.verbose, + ) + ) doc = ''.join(rst) return doc + def optrst(header, options, verbose): data = [] multioccur = False @@ -153,7 +158,7 @@ shortopt, longopt, default, desc, optlabel = option else: shortopt, longopt, default, desc = option - optlabel = _("VALUE") # default label + optlabel = _("VALUE") # default label if not verbose and any(w in desc for w in _exclkeywords): continue @@ -186,18 +191,20 @@ data.append((so, lo, desc)) if multioccur: - header += (_(" ([+] can be repeated)")) + header += _(" ([+] can be repeated)") rst = ['\n%s:\n\n' % header] rst.extend(minirst.maketable(data, 1)) return ''.join(rst) + def indicateomitted(rst, omitted, notomitted=None): rst.append('\n\n.. container:: omitted\n\n %s\n\n' % omitted) if notomitted: rst.append('\n\n.. container:: notomitted\n\n %s\n\n' % notomitted) + def filtercmd(ui, cmd, func, kw, doc): if not ui.debugflag and cmd.startswith("debug") and kw != "debug": # Debug command, and user is not looking for those. @@ -220,9 +227,11 @@ return True return False + def filtertopic(ui, topic): return ui.configbool('help', 'hidden-topic.%s' % topic, False) + def topicmatch(ui, commands, kw): """Return help topics matching kw. @@ -230,19 +239,24 @@ one of topics, commands, extensions, or extensioncommands. """ kw = encoding.lower(kw) + def lowercontains(container): return kw in encoding.lower(container) # translated in helptable - results = {'topics': [], - 'commands': [], - 'extensions': [], - 'extensioncommands': [], - } + + results = { + 'topics': [], + 'commands': [], + 'extensions': [], + 'extensioncommands': [], + } for topic in helptable: names, header, doc = topic[0:3] # Old extensions may use a str as doc. - if (sum(map(lowercontains, names)) + if ( + sum(map(lowercontains, names)) or lowercontains(header) - or (callable(doc) and lowercontains(doc(ui)))): + or (callable(doc) and lowercontains(doc(ui))) + ): name = names[0] if not filtertopic(ui, name): results['topics'].append((names[0], header)) @@ -263,8 +277,8 @@ continue results['commands'].append((cmdname, summary)) for name, docs in itertools.chain( - extensions.enabled(False).iteritems(), - extensions.disabled().iteritems()): + extensions.enabled(False).iteritems(), extensions.disabled().iteritems() + ): if not docs: continue name = name.rpartition('.')[-1] @@ -290,6 +304,7 @@ results['extensioncommands'].append((cmdname, cmddoc)) return results + def loaddoc(topic, subdir=None): """Return a delayed loader for help/topic.txt.""" @@ -305,87 +320,201 @@ return loader -internalstable = sorted([ - (['bundle2'], _('Bundle2'), - loaddoc('bundle2', subdir='internals')), - (['bundles'], _('Bundles'), - loaddoc('bundles', subdir='internals')), - (['cbor'], _('CBOR'), - loaddoc('cbor', subdir='internals')), - (['censor'], _('Censor'), - loaddoc('censor', subdir='internals')), - (['changegroups'], _('Changegroups'), - loaddoc('changegroups', subdir='internals')), - (['config'], _('Config Registrar'), - loaddoc('config', subdir='internals')), - (['extensions', 'extension'], _('Extension API'), - loaddoc('extensions', subdir='internals')), - (['mergestate'], _('Mergestate'), - loaddoc('mergestate', subdir='internals')), - (['requirements'], _('Repository Requirements'), - loaddoc('requirements', subdir='internals')), - (['revlogs'], _('Revision Logs'), - loaddoc('revlogs', subdir='internals')), - (['wireprotocol'], _('Wire Protocol'), - loaddoc('wireprotocol', subdir='internals')), - (['wireprotocolrpc'], _('Wire Protocol RPC'), - loaddoc('wireprotocolrpc', subdir='internals')), - (['wireprotocolv2'], _('Wire Protocol Version 2'), - loaddoc('wireprotocolv2', subdir='internals')), -]) + +internalstable = sorted( + [ + (['bundle2'], _('Bundle2'), loaddoc('bundle2', subdir='internals')), + (['bundles'], _('Bundles'), loaddoc('bundles', subdir='internals')), + (['cbor'], _('CBOR'), loaddoc('cbor', subdir='internals')), + (['censor'], _('Censor'), loaddoc('censor', subdir='internals')), + ( + ['changegroups'], + _('Changegroups'), + loaddoc('changegroups', subdir='internals'), + ), + ( + ['config'], + _('Config Registrar'), + loaddoc('config', subdir='internals'), + ), + ( + ['extensions', 'extension'], + _('Extension API'), + loaddoc('extensions', subdir='internals'), + ), + ( + ['mergestate'], + _('Mergestate'), + loaddoc('mergestate', subdir='internals'), + ), + ( + ['requirements'], + _('Repository Requirements'), + loaddoc('requirements', subdir='internals'), + ), + ( + ['revlogs'], + _('Revision Logs'), + loaddoc('revlogs', subdir='internals'), + ), + ( + ['wireprotocol'], + _('Wire Protocol'), + loaddoc('wireprotocol', subdir='internals'), + ), + ( + ['wireprotocolrpc'], + _('Wire Protocol RPC'), + loaddoc('wireprotocolrpc', subdir='internals'), + ), + ( + ['wireprotocolv2'], + _('Wire Protocol Version 2'), + loaddoc('wireprotocolv2', subdir='internals'), + ), + ] +) + def internalshelp(ui): """Generate the index for the "internals" topic.""" - lines = ['To access a subtopic, use "hg help internals.{subtopic-name}"\n', - '\n'] + lines = [ + 'To access a subtopic, use "hg help internals.{subtopic-name}"\n', + '\n', + ] for names, header, doc in internalstable: lines.append(' :%s: %s\n' % (names[0], header)) return ''.join(lines) -helptable = sorted([ - (['bundlespec'], _("Bundle File Formats"), loaddoc('bundlespec'), - TOPIC_CATEGORY_CONCEPTS), - (['color'], _("Colorizing Outputs"), loaddoc('color'), - TOPIC_CATEGORY_OUTPUT), - (["config", "hgrc"], _("Configuration Files"), loaddoc('config'), - TOPIC_CATEGORY_CONFIG), - (['deprecated'], _("Deprecated Features"), loaddoc('deprecated'), - TOPIC_CATEGORY_MISC), - (["dates"], _("Date Formats"), loaddoc('dates'), TOPIC_CATEGORY_OUTPUT), - (["flags"], _("Command-line flags"), loaddoc('flags'), - TOPIC_CATEGORY_CONFIG), - (["patterns"], _("File Name Patterns"), loaddoc('patterns'), - TOPIC_CATEGORY_IDS), - (['environment', 'env'], _('Environment Variables'), - loaddoc('environment'), TOPIC_CATEGORY_CONFIG), - (['revisions', 'revs', 'revsets', 'revset', 'multirevs', 'mrevs'], - _('Specifying Revisions'), loaddoc('revisions'), TOPIC_CATEGORY_IDS), - (['filesets', 'fileset'], _("Specifying File Sets"), loaddoc('filesets'), - TOPIC_CATEGORY_IDS), - (['diffs'], _('Diff Formats'), loaddoc('diffs'), TOPIC_CATEGORY_OUTPUT), - (['merge-tools', 'mergetools', 'mergetool'], _('Merge Tools'), - loaddoc('merge-tools'), TOPIC_CATEGORY_CONFIG), - (['templating', 'templates', 'template', 'style'], _('Template Usage'), - loaddoc('templates'), TOPIC_CATEGORY_OUTPUT), - (['urls'], _('URL Paths'), loaddoc('urls'), TOPIC_CATEGORY_IDS), - (["extensions"], _("Using Additional Features"), extshelp, - TOPIC_CATEGORY_CONFIG), - (["subrepos", "subrepo"], _("Subrepositories"), loaddoc('subrepos'), - TOPIC_CATEGORY_CONCEPTS), - (["hgweb"], _("Configuring hgweb"), loaddoc('hgweb'), - TOPIC_CATEGORY_CONFIG), - (["glossary"], _("Glossary"), loaddoc('glossary'), TOPIC_CATEGORY_CONCEPTS), - (["hgignore", "ignore"], _("Syntax for Mercurial Ignore Files"), - loaddoc('hgignore'), TOPIC_CATEGORY_IDS), - (["phases"], _("Working with Phases"), loaddoc('phases'), - TOPIC_CATEGORY_CONCEPTS), - (['scripting'], _('Using Mercurial from scripts and automation'), - loaddoc('scripting'), TOPIC_CATEGORY_MISC), - (['internals'], _("Technical implementation topics"), internalshelp, - TOPIC_CATEGORY_MISC), - (['pager'], _("Pager Support"), loaddoc('pager'), TOPIC_CATEGORY_CONFIG), -]) + +helptable = sorted( + [ + ( + ['bundlespec'], + _("Bundle File Formats"), + loaddoc('bundlespec'), + TOPIC_CATEGORY_CONCEPTS, + ), + ( + ['color'], + _("Colorizing Outputs"), + loaddoc('color'), + TOPIC_CATEGORY_OUTPUT, + ), + ( + ["config", "hgrc"], + _("Configuration Files"), + loaddoc('config'), + TOPIC_CATEGORY_CONFIG, + ), + ( + ['deprecated'], + _("Deprecated Features"), + loaddoc('deprecated'), + TOPIC_CATEGORY_MISC, + ), + (["dates"], _("Date Formats"), loaddoc('dates'), TOPIC_CATEGORY_OUTPUT), + ( + ["flags"], + _("Command-line flags"), + loaddoc('flags'), + TOPIC_CATEGORY_CONFIG, + ), + ( + ["patterns"], + _("File Name Patterns"), + loaddoc('patterns'), + TOPIC_CATEGORY_IDS, + ), + ( + ['environment', 'env'], + _('Environment Variables'), + loaddoc('environment'), + TOPIC_CATEGORY_CONFIG, + ), + ( + ['revisions', 'revs', 'revsets', 'revset', 'multirevs', 'mrevs'], + _('Specifying Revisions'), + loaddoc('revisions'), + TOPIC_CATEGORY_IDS, + ), + ( + ['filesets', 'fileset'], + _("Specifying File Sets"), + loaddoc('filesets'), + TOPIC_CATEGORY_IDS, + ), + (['diffs'], _('Diff Formats'), loaddoc('diffs'), TOPIC_CATEGORY_OUTPUT), + ( + ['merge-tools', 'mergetools', 'mergetool'], + _('Merge Tools'), + loaddoc('merge-tools'), + TOPIC_CATEGORY_CONFIG, + ), + ( + ['templating', 'templates', 'template', 'style'], + _('Template Usage'), + loaddoc('templates'), + TOPIC_CATEGORY_OUTPUT, + ), + (['urls'], _('URL Paths'), loaddoc('urls'), TOPIC_CATEGORY_IDS), + ( + ["extensions"], + _("Using Additional Features"), + extshelp, + TOPIC_CATEGORY_CONFIG, + ), + ( + ["subrepos", "subrepo"], + _("Subrepositories"), + loaddoc('subrepos'), + TOPIC_CATEGORY_CONCEPTS, + ), + ( + ["hgweb"], + _("Configuring hgweb"), + loaddoc('hgweb'), + TOPIC_CATEGORY_CONFIG, + ), + ( + ["glossary"], + _("Glossary"), + loaddoc('glossary'), + TOPIC_CATEGORY_CONCEPTS, + ), + ( + ["hgignore", "ignore"], + _("Syntax for Mercurial Ignore Files"), + loaddoc('hgignore'), + TOPIC_CATEGORY_IDS, + ), + ( + ["phases"], + _("Working with Phases"), + loaddoc('phases'), + TOPIC_CATEGORY_CONCEPTS, + ), + ( + ['scripting'], + _('Using Mercurial from scripts and automation'), + loaddoc('scripting'), + TOPIC_CATEGORY_MISC, + ), + ( + ['internals'], + _("Technical implementation topics"), + internalshelp, + TOPIC_CATEGORY_MISC, + ), + ( + ['pager'], + _("Pager Support"), + loaddoc('pager'), + TOPIC_CATEGORY_CONFIG, + ), + ] +) # Maps topics with sub-topics to a list of their sub-topics. subtopics = { @@ -396,9 +525,11 @@ # returning the updated version helphooks = {} + def addtopichook(topic, rewriter): helphooks.setdefault(topic, []).append(rewriter) + def makeitemsdoc(ui, topic, doc, marker, items, dedent=False): """Extract docstring from the items key to function mapping, build a single documentation block and use it to overwrite the marker in doc. @@ -406,8 +537,7 @@ entries = [] for name in sorted(items): text = (pycompat.getdoc(items[name]) or '').rstrip() - if (not text - or not ui.verbose and any(w in text for w in _exclkeywords)): + if not text or not ui.verbose and any(w in text for w in _exclkeywords): continue text = gettext(text) if dedent: @@ -427,35 +557,54 @@ entries = '\n\n'.join(entries) return doc.replace(marker, entries) + def addtopicsymbols(topic, marker, symbols, dedent=False): def add(ui, topic, doc): return makeitemsdoc(ui, topic, doc, marker, symbols, dedent=dedent) + addtopichook(topic, add) -addtopicsymbols('bundlespec', '.. bundlecompressionmarker', - compression.bundlecompressiontopics()) + +addtopicsymbols( + 'bundlespec', + '.. bundlecompressionmarker', + compression.bundlecompressiontopics(), +) addtopicsymbols('filesets', '.. predicatesmarker', fileset.symbols) -addtopicsymbols('merge-tools', '.. internaltoolsmarker', - filemerge.internalsdoc) +addtopicsymbols('merge-tools', '.. internaltoolsmarker', filemerge.internalsdoc) addtopicsymbols('revisions', '.. predicatesmarker', revset.symbols) addtopicsymbols('templates', '.. keywordsmarker', templatekw.keywords) addtopicsymbols('templates', '.. filtersmarker', templatefilters.filters) addtopicsymbols('templates', '.. functionsmarker', templatefuncs.funcs) -addtopicsymbols('hgweb', '.. webcommandsmarker', webcommands.commands, - dedent=True) +addtopicsymbols( + 'hgweb', '.. webcommandsmarker', webcommands.commands, dedent=True +) + def inserttweakrc(ui, topic, doc): marker = '.. tweakdefaultsmarker' repl = uimod.tweakrc + def sub(m): lines = [m.group(1) + s for s in repl.splitlines()] return '\n'.join(lines) + return re.sub(br'( *)%s' % re.escape(marker), sub, doc) + addtopichook('config', inserttweakrc) -def help_(ui, commands, name, unknowncmd=False, full=True, subtopic=None, - fullname=None, **opts): + +def help_( + ui, + commands, + name, + unknowncmd=False, + full=True, + subtopic=None, + fullname=None, + **opts +): ''' Generate the help for 'name' as unformatted restructured text. If 'name' is None, describe the commands available. @@ -465,8 +614,9 @@ def helpcmd(name, subtopic=None): try: - aliases, entry = cmdutil.findcmd(name, commands.table, - strict=unknowncmd) + aliases, entry = cmdutil.findcmd( + name, commands.table, strict=unknowncmd + ) except error.AmbiguousCommand as inst: # py3 fix: except vars can't be used outside the scope of the # except block, nor can be used inside a lambda. python issue4617 @@ -507,11 +657,17 @@ if util.safehasattr(entry[0], 'definition'): # aliased command source = entry[0].source if entry[0].definition.startswith('!'): # shell alias - doc = (_('shell alias for: %s\n\n%s\n\ndefined by: %s\n') % - (entry[0].definition[1:], doc, source)) + doc = _('shell alias for: %s\n\n%s\n\ndefined by: %s\n') % ( + entry[0].definition[1:], + doc, + source, + ) else: - doc = (_('alias for: hg %s\n\n%s\n\ndefined by: %s\n') % - (entry[0].definition, doc, source)) + doc = _('alias for: hg %s\n\n%s\n\ndefined by: %s\n') % ( + entry[0].definition, + doc, + source, + ) doc = doc.splitlines(True) if ui.quiet or not full: rst.append(doc[0]) @@ -525,8 +681,9 @@ mod = extensions.find(name) doc = gettext(pycompat.getdoc(mod)) or '' if '\n' in doc.strip(): - msg = _("(use 'hg help -e %s' to show help for " - "the %s extension)") % (name, name) + msg = _( + "(use 'hg help -e %s' to show help for " "the %s extension)" + ) % (name, name) rst.append('\n%s\n' % msg) except KeyError: pass @@ -536,16 +693,20 @@ rst.append(optrst(_("options"), entry[1], ui.verbose)) if ui.verbose: - rst.append(optrst(_("global options"), - commands.globalopts, ui.verbose)) + rst.append( + optrst(_("global options"), commands.globalopts, ui.verbose) + ) if not ui.verbose: if not full: - rst.append(_("\n(use 'hg %s -h' to show more help)\n") - % name) + rst.append(_("\n(use 'hg %s -h' to show more help)\n") % name) elif not ui.quiet: - rst.append(_('\n(some details hidden, use --verbose ' - 'to show complete help)')) + rst.append( + _( + '\n(some details hidden, use --verbose ' + 'to show complete help)' + ) + ) return rst @@ -572,7 +733,8 @@ h[f] = doc.splitlines()[0].rstrip() cat = getattr(func, 'helpcategory', None) or ( - registrar.command.CATEGORY_NONE) + registrar.command.CATEGORY_NONE + ) cats.setdefault(cat, []).append(f) rst = [] @@ -605,8 +767,10 @@ # Check that all categories have an order. missing_order = set(cats.keys()) - set(CATEGORY_ORDER) if missing_order: - ui.develwarn('help categories missing from CATEGORY_ORDER: %s' % - missing_order) + ui.develwarn( + 'help categories missing from CATEGORY_ORDER: %s' + % missing_order + ) # List per category. for cat in CATEGORY_ORDER: @@ -619,10 +783,13 @@ appendcmds(catfns) ex = opts.get - anyopts = (ex(r'keyword') or not (ex(r'command') or ex(r'extension'))) + anyopts = ex(r'keyword') or not (ex(r'command') or ex(r'extension')) if not name and anyopts: - exts = listexts(_('enabled extensions:'), extensions.enabled(), - showdeprecated=ui.verbose) + exts = listexts( + _('enabled extensions:'), + extensions.enabled(), + showdeprecated=ui.verbose, + ) if exts: rst.append('\n') rst.extend(exts) @@ -640,14 +807,16 @@ topicname = names[0] if not filtertopic(ui, topicname): topiccats.setdefault(category, []).append( - (topicname, header)) + (topicname, header) + ) # Check that all categories have an order. missing_order = set(topiccats.keys()) - set(TOPIC_CATEGORY_ORDER) if missing_order: ui.develwarn( - 'help categories missing from TOPIC_CATEGORY_ORDER: %s' % - missing_order) + 'help categories missing from TOPIC_CATEGORY_ORDER: %s' + % missing_order + ) # Output topics per category. for cat in TOPIC_CATEGORY_ORDER: @@ -663,25 +832,43 @@ if ui.quiet: pass elif ui.verbose: - rst.append('\n%s\n' % optrst(_("global options"), - commands.globalopts, ui.verbose)) + rst.append( + '\n%s\n' + % optrst(_("global options"), commands.globalopts, ui.verbose) + ) if name == 'shortlist': - rst.append(_("\n(use 'hg help' for the full list " - "of commands)\n")) + rst.append( + _("\n(use 'hg help' for the full list " "of commands)\n") + ) else: if name == 'shortlist': - rst.append(_("\n(use 'hg help' for the full list of commands " - "or 'hg -v' for details)\n")) + rst.append( + _( + "\n(use 'hg help' for the full list of commands " + "or 'hg -v' for details)\n" + ) + ) elif name and not full: - rst.append(_("\n(use 'hg help %s' to show the full help " - "text)\n") % name) + rst.append( + _("\n(use 'hg help %s' to show the full help " "text)\n") + % name + ) elif name and syns and name in syns.keys(): - rst.append(_("\n(use 'hg help -v -e %s' to show built-in " - "aliases and global options)\n") % name) + rst.append( + _( + "\n(use 'hg help -v -e %s' to show built-in " + "aliases and global options)\n" + ) + % name + ) else: - rst.append(_("\n(use 'hg help -v%s' to show built-in aliases " - "and global options)\n") - % (name and " " + name or "")) + rst.append( + _( + "\n(use 'hg help -v%s' to show built-in aliases " + "and global options)\n" + ) + % (name and " " + name or "") + ) return rst def helptopic(name, subtopic=None): @@ -711,14 +898,17 @@ rst += [" %s\n" % l for l in doc(ui).splitlines()] if not ui.verbose: - omitted = _('(some details hidden, use --verbose' - ' to show complete help)') + omitted = _( + '(some details hidden, use --verbose' ' to show complete help)' + ) indicateomitted(rst, omitted) try: cmdutil.findcmd(name, commands.table) - rst.append(_("\nuse 'hg help -c %s' to see help for " - "the %s command\n") % (name, name)) + rst.append( + _("\nuse 'hg help -c %s' to see help for " "the %s command\n") + % (name, name) + ) except error.UnknownCommand: pass return rst @@ -743,8 +933,9 @@ rst.append('\n') if not ui.verbose: - omitted = _('(some details hidden, use --verbose' - ' to show complete help)') + omitted = _( + '(some details hidden, use --verbose' ' to show complete help)' + ) indicateomitted(rst, omitted) if mod: @@ -755,24 +946,35 @@ modcmds = {c.partition('|')[0] for c in ct} rst.extend(helplist(modcmds.__contains__)) else: - rst.append(_("(use 'hg help extensions' for information on enabling" - " extensions)\n")) + rst.append( + _( + "(use 'hg help extensions' for information on enabling" + " extensions)\n" + ) + ) return rst def helpextcmd(name, subtopic=None): - cmd, ext, doc = extensions.disabledcmd(ui, name, - ui.configbool('ui', 'strict')) + cmd, ext, doc = extensions.disabledcmd( + ui, name, ui.configbool('ui', 'strict') + ) doc = doc.splitlines()[0] - rst = listexts(_("'%s' is provided by the following " - "extension:") % cmd, {ext: doc}, indent=4, - showdeprecated=True) + rst = listexts( + _("'%s' is provided by the following " "extension:") % cmd, + {ext: doc}, + indent=4, + showdeprecated=True, + ) rst.append('\n') - rst.append(_("(use 'hg help extensions' for information on enabling " - "extensions)\n")) + rst.append( + _( + "(use 'hg help extensions' for information on enabling " + "extensions)\n" + ) + ) return rst - rst = [] kw = opts.get('keyword') if kw or name is None and any(opts[o] for o in opts): @@ -783,10 +985,12 @@ if opts.get('command'): helpareas += [('commands', _('Commands'))] if not helpareas: - helpareas = [('topics', _('Topics')), - ('commands', _('Commands')), - ('extensions', _('Extensions')), - ('extensioncommands', _('Extension Commands'))] + helpareas = [ + ('topics', _('Topics')), + ('commands', _('Commands')), + ('extensions', _('Extensions')), + ('extensioncommands', _('Extension Commands')), + ] for t, title in helpareas: if matches[t]: rst.append('%s:\n\n' % title) @@ -835,8 +1039,10 @@ return ''.join(rst) -def formattedhelp(ui, commands, fullname, keep=None, unknowncmd=False, - full=True, **opts): + +def formattedhelp( + ui, commands, fullname, keep=None, unknowncmd=False, full=True, **opts +): """get help for a given topic (as a dotted name) as rendered rst Either returns the rendered help text or raises an exception. @@ -844,7 +1050,7 @@ if keep is None: keep = [] else: - keep = list(keep) # make a copy so we can mutate this later + keep = list(keep) # make a copy so we can mutate this later # <fullname> := <name>[.<subtopic][.<section>] name = subtopic = section = None @@ -860,8 +1066,16 @@ termwidth = ui.termwidth() - 2 if textwidth <= 0 or termwidth < textwidth: textwidth = termwidth - text = help_(ui, commands, name, fullname=fullname, - subtopic=subtopic, unknowncmd=unknowncmd, full=full, **opts) + text = help_( + ui, + commands, + name, + fullname=fullname, + subtopic=subtopic, + unknowncmd=unknowncmd, + full=full, + **opts + ) blocks, pruned = minirst.parse(text, keep=keep) if 'verbose' in pruned: