def clone(self, framer):
        clone = Frame(name=self.name,
                      store=self.store,
                      framer=framer.name) # only name so resolve framer later
        console.terse("           Cloning Frame '{0}' into Framer '{1}'\n".format(
                               clone.name, framer.name))

        for aux in self.auxes:
            clone.addAux(aux)

        if self.over:
            if isinstance(self.over, Frame):
                msg = ("CloneError: Attempting to clone resolved over frame"
                      "  '{0}'.".format(self.over.name))
                raise excepting.CloneError(msg)
            clone.over = self.over

        if self.next_:
            if isinstance(self.next_, Frame):
                msg = ("CloneError: Attempting to clone resolved next frame"
                      "  '{0}'.".format(self.next_.name))
                raise excepting.CloneError(msg)
            clone.next_ = self.next_

        for under in self.unders:
            if isinstance(under, Frame):
                msg = ("CloneError: Attempting to clone resolved under frame"
                      "  '{0}'.".format(under.name))
                raise excepting.CloneError(msg)
            clone.unders.append(under)

        for act in self.beacts:
            clone.addBeact(act.clone()) # sets context and frame name
        for act in self.preacts:
            clone.addPreact(act.clone())
        for act in self.enacts:
            clone.addEnact(act.clone())
        for act in self.renacts:
            clone.addRenact(act.clone())
        for act in self.reacts:
            clone.addReact(act.clone())
        for act in self.exacts:
            clone.addExact(act.clone())
        for act in self.rexacts:
            clone.addRexact(act.clone())

        return clone
Return clone of self by creating new frame in framer and by
dataset/ETHPy150Open ioflo/ioflo/ioflo/base/framing.py/Frame.clone