docs: def _search_dirs(self, dirs, basename, extension=""):
          """Search a list of directories for a given filename or directory name.
  
          Iterator over the supplied directories, returning the first file
          found with the supplied name and extension.
  
          :param dirs: a list of directories
          :param basename: the filename
          :param extension: the file extension, for example '.conf'
          :returns: the path to a matching file, or None
          """
          for d in dirs:
              path = os.path.join(d, '%s%s' % (basename, extension))
              if os.path.exists(path):
                  return path
  
          return None