def _describe_command(self, command, **options):
        command.get_synopsis()
        command.merge_application_definition(False)

        usages = [command.get_synopsis()] + command.get_aliases() + command.get_usages()

        lines = [
            '%s\n' % command.get_name(),
            '%s\n\n' % ('-' * len(command.get_name())),
            '* Description: %s\n' % (command.get_description() or '<none>'),
            '* Usage:\n\n%s' % (''.join(list(map(lambda x: '  * `%s`\n' % x, usages))))
        ]

        self._write_lines(lines)

        help = command.get_processed_help()
        if help:
            self._write('\n')
            self._write(help)

        if command.get_native_definition():
            self._write('\n\n')
            self._describe_input_definition(command.get_native_definition())
When asyncore tells us we can read from the fd, we proceed processing
dataset/ETHPy150Open sdispater/cleo/cleo/descriptors/markdown_descriptor.py/MarkdownDescriptor._describe_command--crossover with--dataset/ETHPy150Open seb-m/pyinotify/python2/pyinotify.py/AsyncNotifier.handle_read