docs: def _open_file_obj(f, mode="r"):
      """
      A context manager that provides access to a file.
  
      :param f: the file to be opened
      :type f: a file-like object or path to file
      :param mode: how to open the file
      :type mode: string
      """
      if isinstance(f, six.string_types):
          if f.startswith(("http://", "https://")):
              file_obj = _urlopen(f)
              yield file_obj
              file_obj.close()
          else:
              with open(f, mode) as file_obj:
                  yield file_obj
      else:
          yield f