code: def print_all_commands(self, *, no_pager=False):
          formatter = self.parent_parser._get_formatter()
          command_names = sorted(self.parent_parser.subparsers.choices.keys())
          max_name_len = max([len(name) for name in command_names]) + 1
          commands = ""
          for name in command_names:
              command = self.parent_parser.subparsers.choices[name]
              extra_padding = max_name_len - len(name)
              command_line = '%s%s%s' % (
                  name, ' ' * extra_padding, command.description)
              while len(command_line) > formatter._width:
                  lines = textwrap.wrap(command_line, formatter._width)
                  commands += "%s\n" % lines[0]
                  if len(lines) > 1:
                      lines[1] = (' ' * max_name_len) + lines[1]
                      command_line = ' '.join(lines[1:])
                  else:
                      command_line = None
              if command_line:
                  commands += "%s\n" % command_line
          if no_pager:
              print(commands[:-1])
          else:
              print_with_pager(commands[:-1])