def __str__(self):
is_at_pp_creation_time = len(self.pp_execution_errors) == <NUM_LIT:0><EOL>base_msg = "<STR_LIT>""<STR_LIT>".format(action='<STR_LIT>' if is_at_pp_creation_time else '<STR_LIT>',<EOL>obj=self.parent_plan.obj_on_fs_to_parse,<EOL>typ=get_pretty_type_str(self.parent_plan.obj_type))<EOL>msg = StringIO()<EOL>tried_and_errors = []<EOL>for t, p in self.origin_parser._parsers_list:<EOL><INDENT>t = t or self.parent_plan.obj_type<EOL>if (t, p) in self.pp_creation_errors:<EOL><INDENT>is_creation_err = True<EOL>err = self.pp_creation_errors[(t, p)]<EOL><DEDENT>elif (t, p) in self.pp_execution_errors:<EOL><INDENT>is_creation_err = False<EOL>err = self.pp_execution_errors[(t, p)]<EOL><DEDENT>else:<EOL><INDENT>raise Exception('<STR_LIT>')<EOL><DEDENT>tried_and_errors.append((t, p, is_creation_err, err))<EOL><DEDENT>if len(tried_and_errors) > <NUM_LIT:0>:<EOL><INDENT>msg.writelines('<STR_LIT>' +<EOL>'<STR_LIT>'.join(["<STR_LIT>".format(p=p,<EOL>t=get_pretty_type_str(t or self.parent_plan.obj_type))<EOL>for t, p, is_creation_err, err in tried_and_errors]))<EOL>msg.writelines('<STR_LIT>')<EOL>for t, p, is_creation_err, err in tried_and_errors:<EOL><INDENT>msg.writelines("<STR_LIT>"<EOL>"<STR_LIT>".format(p=p, t=get_pretty_type_str(t or self.parent_plan.obj_type),<EOL>expl='<STR_LIT>' if is_creation_err else '<STR_LIT>'))<EOL>print_error_to_io_stream(err, msg)<EOL>msg.write('<STR_LIT:\n>')<EOL><DEDENT><DEDENT>return base_msg + msg.getvalue()<EOL>
A string representation
:return: