code: def _parse_row(line, sep, ncols, default):
      row = tuple(v.strip() for v in line.split(sep))
      if (ncols or 0) > 0:
          diff = ncols - len(row)
          if diff:
              if default is NOT_SET or diff < 0:
                  raise Exception(
                      f"bad row (expected {ncols} columns, got {row!r})"
                  )
              row += (default,) * diff
      return row
  
imports: from collections import namedtuple
  import csv
  import re
  import textwrap
  from .None import NOT_SET, strutil, fsutil
label_desc: Use image node_id 11 for calling a global function with example usage: _parse_row(line, sep, ncols, default) and returns: row