docs: def _read_config_file(path=None):
      """
      Reads config file.
      First look for config file in the current directory, then in the
      user's home directory, then in the same directory as this file.
      Tries to find config file both with and without preceeding 'dot'
      for hidden files (prefer non-hidden).
      """
      cfg = configparser.ConfigParser()
  
      if path is None:  # pragma: no cover
          dirs = [os.curdir, os.path.expanduser('~'),
                  os.path.dirname(os.path.realpath(__file__))]
          locations = map(os.path.abspath, dirs)
          for loc in locations:
              if cfg.read(os.path.join(loc, 'gpflowrc')):
                  break
              if cfg.read(os.path.join(loc, '.gpflowrc')):
                  break
      else:
          if not cfg.read(path):
              raise RuntimeError("Config at '{0}' cannot be read".format(path))
      return cfg