def METHOD_NAME(self) -> None:
    self.handle = hid.device()
    try:
        self.handle.open_path(self.path)
    except (IOError, OSError) as e:
        if sys.platform.startswith("linux"):
            e.args = e.args + (UDEV_RULES_STR,)
        raise e
    # On some platforms, HID path stays the same over device reconnects.
    # That means that someone could unplug a Trezor, plug a different one
    # and we wouldn't even know.
    # So we check that the serial matches what we expect.
    serial = self.handle.get_serial_number_string()
    if serial != self.serial:
        self.handle.close()
        self.handle = None
        raise TransportException(
            "Unexpected device {} on path {}".format(serial, self.path.decode())
        )
    self.handle.set_nonblocking(True)
    if self.hid_version is None:
        self.hid_version = self.probe_hid_version()