code: def validate_scanner_list(ctx, param, value):
      
      if not value:
          return None
  
      valid_groups = ctx.obj.scanner_groups
      scanners = [x.strip() for x in value.split(',')]
  
      if 'all' in scanners:
          return ['all']
  
      scanner_ids = []
      for scanner in scanners:
          if scanner.isdigit():
              scanner_ids.append(scanner)
          elif scanner in valid_groups:
              scanner_ids += ctx.obj.scanner_group_map[scanner]
          else:
              raise click.BadParameter('Invalid scanner "{0}" provided. Must be a valid group or numeric ID.'
                                       .format(scanner))
  
      return scanner_ids
docs: Validate a comma-separated list of scanners and extract it into a list of groups and IDs.