docs: def isCLIExecutable(filePath):
      """Test whether given `filePath` is an executable.  Does not really
      check whether the executable is a CLI (e.g. whether it supports
      --xml), but can be used to filter out non-executables within a
      directory with CLI modules.
      """
      # see qSlicerUtils::isCLIExecutable
      # e.g. https://github.com/Slicer/Slicer/blob/master/Base/QTCore/qSlicerUtils.cxx
      if not os.path.isfile(filePath):
          return False
      if sys.platform.startswith('win'):
          filePath = filePath.lower() # be case insensitive
          return filePath.endswith(".exe") or filePath.endswith(".bat")
      else:
          # differing from qSlicerUtils here, which does not check for executable bits
          # (this way we can differentiate between XML files saved with the same name
          # as the executables and the executables themselves)
          if not os.access(filePath, os.X_OK):
              return False
          return not '.' in os.path.basename(filePath)