def __restore__(self):
        super(Turtle, self).__restore__()
        try:
            [panda.setdefault(self.CREATOR, self.creator) for panda in self.pandas]
            [panda.setdefault(self.NAME, self.name) for panda in self.pandas]
            self.tigress.setdefault(self.CREATOR, self.creator)
            self.tigress.setdefault(self.NAME, self.name)
        except:
            pass
        self.pandas = crane.pandaStore.load_or_create_all(self.pandas)
        self.tigress = crane.tigressStore.load_or_create(self.tigress)
        self.pandaUids = set((p.uid for p in self.pandas))
        self.invertedMapping = {tuple(v): k for k, v in self.mapping.iteritems()}
        self.followers = set(self.followers)
        
        if self.FREQUIRES_UIDS in self.requires:
            uids = self.requires[self.FREQUIRES_UIDS]
            if isinstance(uids, basestring):
                uids = eval(uids)
            [panda.add_features(uids) for panda in self.pandas]
        elif self.requires in self.FREQUIRES_TURTLES:
            turtles = self.store.load_or_create_all(
                      [{'name':t, 'creator':self.creator}
                       for t in self.requires[self.FREQUIRES_TURTLES]])
            [panda.add_features(turtle.get_panda_uids()) for turtle in turtles for panda in self.pandas]
        elif self.requires:
            logger.error('dependent features are either in {0} or {1}, but not in {2}'.format(
                         self.FREQUIRES_UIDS,
                         self.FREQUIRES_TURTLES,
                         self.requires))
dataset/ETHPy150Open xumiao/pymonk/monk/core/turtle.py/Turtle.__restore__/swapped operands of `in`