def load(self, instance, session):
        cache_name = self.field.get_cache_name()
        cache_val = None
        try:
            cache_val = getattr(instance, cache_name)
            if not isinstance(cache_val, Structure):
                raise AttributeError
            structure = cache_val
        except __HOLE__:
            structure = self.get_structure(instance, session)
            setattr(instance, cache_name, structure)
            if cache_val is not None:
                structure.load_data(cache_val,
                                    structure.cache.set_cache)
        if session:  # override session only if a new session is given
            structure.session = session
        return structure
dataset/ETHPy150Open lsbardel/python-stdnet/stdnet/odm/structfields.py/StructureFieldProxy.load