Keep explicit newlines with help texts
This makes a difference for e.g. pytest-xdist: Before: ``` --dist=distmode set mode for distributing tests to exec environments. each: … available environment. loadscope: … grouped by file to any available environment. (default) no: … ``` After: ``` --dist=distmode set mode for distributing tests to exec environments. each: send each test to all available environments. load: load balance by sending any pending test to any available environment. … (default) no: run tests inprocess, don't distribute. ``` This might also result in unexpected changes (hard wrapping), when line endings where used unintentionally, e.g. with: ``` help=""" some long help text """ ``` But the benefits from that are worth it, and it is easy to fix, as will be done for the internal `assertmode` option.
This commit is contained in:
parent
d05ef61e95
commit
87423d3cc8
|
@ -509,3 +509,15 @@ class DropShorterLongHelpFormatter(argparse.HelpFormatter):
|
||||||
formatted_action_invocation = ", ".join(return_list)
|
formatted_action_invocation = ", ".join(return_list)
|
||||||
action._formatted_action_invocation = formatted_action_invocation # type: ignore
|
action._formatted_action_invocation = formatted_action_invocation # type: ignore
|
||||||
return formatted_action_invocation
|
return formatted_action_invocation
|
||||||
|
|
||||||
|
def _split_lines(self, text, width):
|
||||||
|
"""Wrap lines after splitting on original newlines.
|
||||||
|
|
||||||
|
This allows to have explicit line breaks in the help text.
|
||||||
|
"""
|
||||||
|
import textwrap
|
||||||
|
|
||||||
|
lines = []
|
||||||
|
for line in text.splitlines():
|
||||||
|
lines.extend(textwrap.wrap(line.strip(), width))
|
||||||
|
return lines
|
||||||
|
|
Loading…
Reference in New Issue