def _describe_input_definition(self, definition, **options):
        definition_options = definition.get_options()
        definition_arguments = definition.get_arguments()
        total_width = self._calculate_total_width_for_options(definition_options)

        for argument in definition_arguments:
            total_width = max(total_width, len(argument.get_name()))

        if definition_arguments:
            self._write_text('<comment>Arguments:</comment>', **options)
            self._write_text('\n')

            for argument in definition_arguments:
                self._describe_input_argument(argument, total_width=total_width, **options)
                self._write_text('\n')

        if definition_arguments and definition_options:
            self._write_text('\n')

        if definition_options:
            later_options = []

            self._write_text('<comment>Options:</comment>', **options)

            for option in definition_options:
                if option.get_shortcut() and len(option.get_shortcut()) > 1:
                    later_options.append(option)
                    continue

                self._write_text('\n')
                self._describe_input_option(option, total_width=total_width, **options)

            for option in later_options:
                self._write_text('\n')
                self._describe_input_option(option, total_width=total_width, **options)
Describes an InputDefinition instance.
dataset/ETHPy150Open sdispater/cleo/cleo/descriptors/text_descriptor.py/TextDescriptor._describe_input_definition