1from clikit.api.io import IO
2from clikit.api.config import ApplicationConfig
3from clikit.ui import Component
4
5from .paragraph import Paragraph
6
7
8class NameVersion(Component):
9    """
10    Renders the name and version of an application.
11    """
12
13    def __init__(self, config):  # type: (ApplicationConfig) -> None
14        self._config = config
15
16    def render(self, io, indentation=0):  # type: (IO, int) -> None
17        if self._config.display_name and self._config.version:
18            paragraph = Paragraph(
19                "{} version <c1>{}</c1>".format(
20                    self._config.display_name, self._config.version
21                )
22            )
23        elif self._config.display_name:
24            paragraph = Paragraph("{}".format(self._config.display_name))
25        else:
26            paragraph = Paragraph("Console Tool")
27
28        paragraph.render(io, indentation)
29