def checkPiece(self, piece): metainfo = self.metainfo if metainfo.is_batch: files = [os.path.join(self.pathName, f) for f in metainfo.files_fs] else: files = [self.pathName] filePool = FilePool(self.config['max_files_open']) filePool.add_files(files, None) storage = Storage(self.config, filePool, zip(files, metainfo.sizes)) doneFlag = threading.Event() config = Preferences(self.config) config['check_hashes'] = True storageWrapper = StorageWrapper(storage, config, metainfo.hashes, metainfo.piece_length, None, self.statusFunc, doneFlag, None, metainfo.infohash, None, None) result = storageWrapper.do_I_have(piece) storage.close() filePool.close_all() return result