'Disengage control over an object.
Args:
session (Session or list): The session or a list of
sessions to disengage from their puppets.
Raises:
RuntimeError With message about error.'

def unpuppet_object(self, session):

    for session in make_iter(session):
        obj = session.puppet
        if obj:
            obj.at_pre_unpuppet()
            obj.sessions.remove(session)
            if (not obj.sessions.count()):
                del obj.player
            obj.at_post_unpuppet(self, session=session)
        session.puppet = None
        session.puid = None
