def Search(self, metadata): ticket = self._search_count self._search_count = self._search_count + 1 thread = BaseTaskThread(onfinish=lambda result: self.do_searchsuccess(self._app, ticket, result), onerror=lambda e: self.do_searchfailure(self._app, ticket, e), target=self.do_search, kwargs={'metadata': Metadata.from_dict(metadata)}) self._search_tasks[ticket] = thread thread.start() return ticket