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)