我看到我的EPILOG中没有保留换行符?我想知道为什么如果我看到只有当一行包含74
个字符时才会保留换行符?
# http://click.pocoo.org/5/commands/
import click, sys
def main_caller(*args, **kwargs):
print('act on arguments', args, kwargs)
EPILOG = '''
# oneline
# twoline
\n
# oneline with 74char x
# twoline with 74char x
'''
@click.group(help='wwwwwwwwww', epilog=EPILOG, invoke_without_command=True, chain=True)
@click.argument('start_or_stop')
@click.option('-v', '--verbose', default=False, help='Print Verbose messages')
@click.option('-l', '--logfile', help='Path to logfile to store log messages')
@click.option('-a', '--action', multiple=True, type=click.Choice(['act1', 'act2', 'act3']), default=['act1', 'act2'])
def cli(*args, **kwargs):
'''foo bar'''
pass
@cli.command()
@click.option('--debug/--no-debug', default=False)
def cmd1(*args, **kwargs):
print('cmd1', args, kwargs)
return 'cmd11111'
@cli.command()
@click.option('-x', '--xxx', default='x')
def cmd2(*args, **kwargs):
print('cmd2', args, kwargs)
return 'cmd22222'
@cli.resultcallback()
def process_pipeline(*args, **kwargs):
print('process', args, kwargs)
print('args', sys.argv[1:])
if __name__ == '__main__':
cli()
输出是:
/click_sandbox.py --help
2017/02/24 19:31:43 Platform overridden to 'RHEL5_64'
Usage: click_sandbox.py [OPTIONS] START_OR_STOP COMMAND1 [ARGS]... [COMMAND2
[ARGS]...]...
wwwwwwwwww
Options:
-v, --verbose TEXT Print Verbose messages
-l, --logfile TEXT Path to logfile to store log messages
-a, --action [act1|act2|act3]
--help Show this message and exit.
Commands:
cmd1
cmd2
# oneline # twoline
# oneline with 74char x
# twoline with 74char x
答案 0 :(得分:2)
由于epilog编写者会自动换行,因此不会保留您的换行符。这可以通过click.Group
的子类来解决,创建一个不会自动换行的format_epilog()
:
class SpecialEpilog(click.Group):
def format_epilog(self, ctx, formatter):
if self.epilog:
formatter.write_paragraph()
for line in self.epilog.split('\n'):
formatter.write_text(line)
# Tell click to use our epilog formatter
@click.group(cls=SpecialEpilog,
help='wwwwwwwwww', epilog=EPILOG, invoke_without_command=True, chain=True)
....
答案 1 :(得分:0)
在Click 7.0中,您使用\ b标记表示要保留格式,例如:
This paragraph is formatted normally and Click does
not preserve new lines.
\b
This paragraph is formatted as it
appears in the source:
item 1
item 2
This paragraph is formatted normally and Click does
not preserve new lines.