Source code for mario.cli_tools

import textwrap

import click

import mario.doc


[docs]class CommandInSection(click.Command): def __init__(self, *args, section=None, **kwargs): self.section = section super().__init__(*args, **kwargs)
[docs]class ReSTCommand(click.Command): """Parse help as rst."""
[docs] def format_help_text(self, ctx, formatter): if self.help: self.help = mario.doc.rst2text(textwrap.dedent(self.help)) original_wrap_text = click.formatting.wrap_text click.formatting.wrap_text = lambda x, *a, **kw: x super().format_help_text(ctx, formatter) click.formatting.wrap_text = original_wrap_text elif self.short_help: original_help = self.help self.help = self.short_help super().format_help_text(ctx, formatter) self.help = original_help
[docs]class DocumentedCommand(ReSTCommand, CommandInSection): pass