@rbac(('owner', 'user'))
    def set(self, path, value):
        """Set the value of the Variable specified by the given path, which
        may contain '.' characters. The Variable will be set to the given
        value, subject to validation and constraints.
        """
        _local_setter_ = value
        expr = self._setcache.get(path)
        if expr is not None:
            exec(expr)
            return

        obj, restofpath = proxy_parent(self, path)
        # if restofpath is truthy, it means either that path
        # contains a proxy or it contains some syntax that causes
        # getattr to fail, e.g., a function eval, array element ref, etc.

        if IOverrideSet.providedBy(obj) or (restofpath and IContainerProxy.providedBy(obj)):
            obj.set(restofpath, value)
            return

        # assume all local.  just compile the expr and cache it if
        # it can be evaluated
        assign = path % "self.%s=_local_setter_"
        expr = compile(assign, assign, mode='exec')
        try:
            exec(expr)
        except Exception as err:
            self.raise_exception(str(err), err.__class__)
        else:
            self._setcache[path] = expr
dataset/ETHPy150Open OpenMDAO/OpenMDAO-Framework/openmdao.main/src/openmdao/main/container.py/Container.set/swapped operands of `%`