def parse_exclude_devices(exclude_list):
 exclude_mapping = {}
 for dev_mapping in exclude_list:
  try:
   (dev_name, exclude_devices) = dev_mapping.split(':', 1)
  except ValueError:
   raise ValueError((_("Invalid mapping: '%s'") % dev_mapping))
  dev_name = dev_name.strip()
  if (not dev_name):
   raise ValueError((_("Missing key in mapping: '%s'") % dev_mapping))
  if (dev_name in exclude_mapping):
   raise ValueError((_('Device %(dev_name)s in mapping: %(mapping)s not unique') % {'dev_name': dev_name, 'mapping': dev_mapping}))
  exclude_devices_list = exclude_devices.split(';')
  exclude_devices_set = set()
  for dev in exclude_devices_list:
   dev = dev.strip()
   if dev:
    exclude_devices_set.add(dev)
  exclude_mapping[dev_name] = exclude_devices_set
 return exclude_mapping

def parse_exclude_devices ( exclude_list ) : exclude_mapping = { } for dev_mapping in exclude_list : try : ( dev_name , exclude_devices ) = dev_mapping . split ( ':' , 1 ) except ValueError : raise ValueError ( ( _ ( "Invalid mapping: '%s'" ) % dev_mapping ) ) dev_name = dev_name . strip ( ) if ( not dev_name ) : raise ValueError ( ( _ ( "Missing key in mapping: '%s'" ) % dev_mapping ) ) if ( dev_name in exclude_mapping ) : raise ValueError ( ( _ ( 'Device %(dev_name)s in mapping: %(mapping)s not unique' ) % { 'dev_name' : dev_name , 'mapping' : dev_mapping } ) ) exclude_devices_list = exclude_devices . split ( ';' ) exclude_devices_set = set ( ) for dev in exclude_devices_list : dev = dev . strip ( ) if dev : exclude_devices_set . add ( dev ) exclude_mapping [ dev_name ] = exclude_devices_set return exclude_mapping
parse exclude devices list parses excluded device list in the form: dev_name:pci_dev_1;pci_dev_2 .