code: def do_list(self):
          
          # Default to listing probes.
          if (self._args.probes, self._args.targets, self._args.boards) == (False, False, False):
              self._args.probes = True
          
          # Create a session with no device so we load any config.
          session = Session(None,
                              project_dir=self._args.project_dir,
                              config_file=self._args.config,
                              no_config=self._args.no_config,
                              pack=self._args.pack,
                              **convert_session_options(self._args.options)
                              )
          
          if self._args.probes:
              ConnectHelper.list_connected_probes()
          elif self._args.targets:
              # Create targets from provided CMSIS pack.
              if ('pack' in session.options) and (session.options['pack'] is not None):
                  pack_target.PackTargets.populate_targets_from_pack(session.options['pack'])
  
              obj = ListGenerator.list_targets()
              pt = self._get_pretty_table(["Name", "Vendor", "Part Number", "Families", "Source"])
              for info in sorted(obj['targets'], key=lambda i: i['name']):
                  pt.add_row([
                              info['name'],
                              info['vendor'],
                              info['part_number'],
                              ', '.join(info['part_families']),
                              info['source'],
                              ])
              print(pt)
          elif self._args.boards:
              obj = ListGenerator.list_boards()
              pt = self._get_pretty_table(["ID", "Name", "Target", "Test Binary"])
              for info in sorted(obj['boards'], key=lambda i: i['id']):
                  pt.add_row([
                              info['id'],
                              info['name'],
                              info['target'],
                              info['binary']
                              ])
              print(pt)
docs: ! @brief Handle 'list' subcommand.