code: def enumerate(cls):
          
          devices = {}
          for d in hid.enumerate(0, 0):
              vendor_id = d['vendor_id']
              product_id = d['product_id']
              serial_number = d['serial_number']
              interface_number = d['interface_number']
              path = d['path']
  
              # HIDAPI on Mac cannot detect correct HID interfaces, so device with
              # DebugLink doesn't work on Mac...
              if devices.get(serial_number) != None and devices[serial_number][0] == path:
                  raise Exception("Two devices with the same path and S/N found. This is Mac, right? :-/")
  
              if (vendor_id, product_id) in DEVICE_IDS:
                  devices.setdefault(serial_number, [None, None, None])
                  if is_normal_link(d):
                      devices[serial_number][0] = path
                  elif is_debug_link(d):
                      devices[serial_number][1] = path
                  else:
                      raise Exception("Unknown USB interface number: %d" % interface_number)
  
          # List of two-tuples (path_normal, path_debuglink)
          return list(devices.values())
docs: Return a list of available KeepKey devices.