def run(self): candidates = self.getCandidates() if not candidates: self.fail('no affordance candidates found') om.clearSelection() self.statusMessage = 'Please select affordance candidate: %s' % self.properties.getProperty('Candidate name prefix') while True: obj = om.getActiveObject() if obj and obj in candidates: break else: yield self.selectCandidate(obj, candidates)