Browse Source

hid hid_get_input_report workarounds

zvecr 3 years ago
parent
commit
8e18f4d0fd
2 changed files with 8 additions and 4 deletions
  1. 5 3
      lib/python/xap_client/client.py
  2. 3 1
      lib/python/xap_client/device.py

+ 5 - 3
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)

+ 3 - 1
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)