code: def _parse(self, line_iter):
      result = []
      section = None
      for lineno, line in enumerate(line_iter):
          name, data = self._parseline(line, lineno)
          # new value
          if name is not None and data is not None:
              result.append((lineno, section, name, data))
          # new section
          elif name is not None and data is None:
              if not name:
                  self._raise(lineno, "empty section name")
              section = name
              result.append((lineno, section, None, None))
          # continuation
          elif name is None and data is not None:
              if not result:
                  self._raise(lineno, "unexpected value continuation")
              last = result.pop()
              last_name, last_data = last[-2:]
              if last_name is None:
                  self._raise(lineno, "unexpected value continuation")
  
              if last_data:
                  data = "%s\n%s" % (last_data, data)
              result.append(last[:-1] + (data,))
      return result
  
imports: import io
label_desc: Use image node_id 3 for calling the IniConfig obj's underlying member method code with example usage: obj._parse(line_iter) and returns: result