def METHOD_NAME(self, data, filename):
    try:
        self.filename = os.path.abspath(filename)
        root = hit.parse(os.path.abspath(filename), data)
        hit.explode(root)
        w = DupWalker(os.path.abspath(filename))
        root.walk(w, hit.NodeType.Field)
        if w.errors:
            for err in w.errors:
                mooseutils.mooseWarning(err)
            raise PeacockException("Parser errors")
        self.original_text = data
        self.root_node = root
        self.changed = False
    except PeacockException as e:
        msg = "Failed to parse input file %s:\n%s\n" % (filename, e)
        mooseutils.mooseWarning(msg)
        raise e