def _describe_input_option(self, option, **options):
        accept_value = option.accept_value()
        default = option.get_default()
        if accept_value and default is not None and (not isinstance(default, list) or len(default)):
            default = '<comment> [default: %s]</comment>' % self._format_default_value(default)
        else:
            default = ''

        value = ''
        if accept_value:
            value = '=%s' % option.get_name().upper()

            if option.is_value_optional():
                value = '[%s]' % value

        total_width = options.get('total_width', self._calculate_total_width_for_options([option]))
        shortcut = option.get_shortcut()
        synopsis = '%s%s'\
                   % ('-%s, ' % shortcut if shortcut else '    ',
                      '--%s%s' % (option.get_name(), value))

        spacing_width = total_width - len(synopsis) + 2

        self._write_text(
            '  <info>%s</info>%s%s%s%s'
            % (
                synopsis,
                ' ' * spacing_width,
                re.sub('\s*[\r\n]\s*', '\n' + (' ' * (total_width + 17)), option.get_description() or ''),
                default,
                '<comment> (multiple values allowed)</comment>' if option.is_list() else ''
            ),
            **options
        )
Same as `.iterorderable` but only returns visible `.BoundColumn`
dataset/ETHPy150Open sdispater/cleo/cleo/descriptors/text_descriptor.py/TextDescriptor._describe_input_option--crossover with--dataset/ETHPy150Open bradleyayers/django-tables2/django_tables2/columns/base.py/BoundColumns.itervisible