Invoke the CSV parser on an individual row

        The row should already be a dict from the CSV reader.
        The reader is passed in so we can easily reference the
        CSV document headers & line number when generating
        errors.

def run(cls, row, reader):
        """ Invoke the CSV parser on an individual row

        The row should already be a dict from the CSV reader.
        The reader is passed in so we can easily reference the
        CSV document headers & line number when generating
        errors.
        """

        cls._parse_keys(row, reader.line_num)
        cls._parse_relationships(row, reader.line_num)