code: def open(cls, **kwargs):
      
      handle_iter = cls.iter_open(**kwargs)
  
      try:
        handle = six.next(handle_iter)
      except StopIteration:
        # No matching interface, raise.
        raise usb_exceptions.DeviceNotFoundError(
            'Open failed with args: %s', kwargs)
  
      try:
        multiple_handle = six.next(handle_iter)
      except StopIteration:
        # Exactly one matching device, return it.
        return handle
  
      # We have more than one device, close the ones we opened and bail.
      handle.close()
      multiple_handle.close()
      raise usb_exceptions.MultipleInterfacesFoundError(kwargs)
docs: See iter_open, but raises if multiple or no matches found.