From 8e18f4d0fd24f890fdbff47b2ae8fa9b69c88076 Mon Sep 17 00:00:00 2001 From: zvecr Date: Tue, 6 Sep 2022 17:33:19 +0100 Subject: [PATCH] hid hid_get_input_report workarounds --- lib/python/xap_client/client.py | 8 +++++--- lib/python/xap_client/device.py | 4 +++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/python/xap_client/client.py b/lib/python/xap_client/client.py index 92258b7594c..598241548f4 100644 --- a/lib/python/xap_client/client.py +++ b/lib/python/xap_client/client.py @@ -1,13 +1,12 @@ # Copyright 2022 QMK # SPDX-License-Identifier: GPL-2.0-or-later -import hid - +from typing import List class XAPClient: """XAP device discovery """ @staticmethod - def devices(search: str = None) -> list[dict]: + def devices(search: str = None) -> List[dict]: """Find compatible XAP devices Args: @@ -20,6 +19,9 @@ class XAPClient: name = '%04x:%04x' % (x['vendor_id'], x['product_id']) return name.lower().startswith(search.lower()) + # lazy import to avoid compile issues + import hid + devices = filter(_is_xap_usage, hid.enumerate()) if search: devices = filter(_is_filtered_device, devices) diff --git a/lib/python/xap_client/device.py b/lib/python/xap_client/device.py index bd7f5691fb9..b26276251ba 100644 --- a/lib/python/xap_client/device.py +++ b/lib/python/xap_client/device.py @@ -1,6 +1,5 @@ # Copyright 2022 QMK # SPDX-License-Identifier: GPL-2.0-or-later -import hid import json import time import gzip @@ -40,6 +39,9 @@ class XAPDeviceBase: self.timeout = timeout self.running = True + # lazy import to avoid compile issues + import hid + self.dev = hid.Device(path=dev['path']) self.bg = threading.Thread(target=self._read_loop, daemon=True)