Lib/optparse.py
ファイルを見てください。
class HelpFormatter
def format_option
...
if option.help:
help_text = self.expand_default(option)
help_lines = textwrap.wrap(help_text, self.help_width)
result.append("%*s%s\n" % (indent_first, "", help_lines[0]))
result.extend(["%*s%s\n" % (self.help_position, "", line)
for line in help_lines[1:]])
つまり、help
文字列は を通過しtextwrap.wrap
ます。その関数を簡単にテストすると、 embedded が削除され\n
、適切と思われる行が分割されることがわかります。
と同様に、 をサブクラス化し、このような選択したメソッドを書き換えることでargparse
、ヘルプをカスタマイズできます。たとえば、その呼び出しをHelpFormatter
に置き換えることで、欲しいものを手に入れることができます。自動ラッピングは失われますが、ヘルプの外観を制御できます。textwrap
help_lines = help_text.splitlines()
OptionParser
パラメータを取りformatter
ます。 IndentedHelpFormatter
カスタマイズされたフォーマッタ クラスの例です。
,クラスはまさにそのような変更を行い、argparse
呼び出しを.RawTextHelpFormatter
wrap
splitlines()