@classmethod
def Find(cls, setting_matcher, port_path=None, serial=None, timeout_ms=None):
    """Gets the first device that matches according to the keyword args."""
    if port_path:
        device_matcher = cls.PortPathMatcher(port_path)
        usb_info = port_path
    elif serial:
        device_matcher = cls.SerialMatcher(serial)
        usb_info = serial
    else:
        device_matcher = None
        usb_info = 'first'
    return cls.FindFirst(setting_matcher, device_matcher, usb_info=usb_info,
        timeout_ms=timeout_ms)
