docs: def node_from_ini(ini_file, nodefactory=Node, root_name='ini'):
      """
      Convert a .ini file into a Node object.
  
      :param ini_file: a filename or a file like object in read mode
      """
      fileobj = open(ini_file) if isinstance(ini_file, str) else ini_file
      cfp = configparser.RawConfigParser()
      cfp.read_file(fileobj)
      root = nodefactory(root_name)
      sections = cfp.sections()
      for section in sections:
          params = dict(cfp.items(section))
          root.append(Node(section, params))
      return root