docs: def _flatten_subsection(subsection, _type, offset, parent):
      '''Flatten a subsection from its nested version
  
      Args:
          subsection: Nested subsection as produced by _parse_section, except one level in
          _type: type of section, ie: AXON, etc
          parent: first element has this as it's parent
          offset: position in the final array of the first element
  
      Returns:
          Generator of values corresponding to [X, Y, Z, R, TYPE, ID, PARENT_ID]
      '''
      for row in subsection:
          # TODO: Figure out what these correspond to in neurolucida
          if row in ('Low', 'Generated', 'High', ):
              continue
          elif isinstance(row[0], StringType):
              if len(row) in (4, 5, ):
                  if len(row) == 5:
                      assert row[4][0] == 'S', \
                          'Only known usage of a fifth member is Sn, found: %s' % row[4][0]
                  yield (float(row[0]), float(row[1]), float(row[2]), float(row[3]) / 2.,
                         _type, offset, parent)
                  parent = offset
                  offset += 1
          elif isinstance(row[0], list):
              split_parent = offset - 1
              start_offset = 0
  
              slices = []
              start = 0
              for i, value in enumerate(row):
                  if value == '|':
                      slices.append(slice(start + start_offset, i))
                      start = i + 1
              slices.append(slice(start + start_offset, len(row)))
  
              for split_slice in slices:
                  for _row in _flatten_subsection(row[split_slice], _type, offset,
                                                  split_parent):
                      offset += 1
                      yield _row