@rbac(('owner', 'user'), proxy_types=[FileRef])
    def get(self, path):
        """Return the object specified by the given path, which may
        contain '.' characters.
        """
        expr = self._getcache.get(path)
        if expr is not None:
            return eval(expr, self.__dict__)

        obj, restofpath = get_closest_proxy(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 restofpath and IContainerProxy.providedBy(obj):
            return obj.get(restofpath)

        # assume all local.  just compile the expr and cache it if
        # it can be evaluated
        expr = compile(path, path, mode='eval')
        try:
            val = eval(expr, self.__dict__)
        except (__HOLE__, NameError) as err:
            if not restofpath: # to get around issue with PassthroughProperty
                return obj
            self.raise_exception(str(err), AttributeError)
        else:
            self._getcache[path] = expr
            return val
dataset/ETHPy150Open OpenMDAO/OpenMDAO-Framework/openmdao.main/src/openmdao/main/container.py/Container.get