code: def find(cls, device=None):
          
          if not have_pyftdi:
              raise ImportError('The USBDevice class has been disabled due to missing requirement: pyftdi or pyusb.')
  
          cls.find_all()
  
          if len(cls.__devices) == 0:
              raise NoDeviceError('No AD2USB devices present.')
  
          if device is None:
              device = cls.__devices[0]
  
          vendor, product, sernum, ifcount, description = device
  
          return USBDevice(interface=sernum, vid=vendor, pid=product)
docs: Factory method that returns the requested :py:class:`USBDevice` device, or the
          first device.
  
          :param device: Tuple describing the USB device to open, as returned
                         by find_all().
          :type device: tuple
  
          :returns: :py:class:`USBDevice` object utilizing the specified device
          :raises: :py:class:`~alarmdecoder.util.NoDeviceError`