def full_description(self):
    """Returns a description of the app and all the actions it supports."""
    return textwrap.dedent(f"""\
    {self.name()}: {self.description()}
    The app supports the following actions:
    """) + '\n'.join(f'{a.name}: {a.description}' for a in self.actions())
Returns a description of the app and all the actions it supports.
examples/deprecated/phone/components/apps.py