def consumer(queue, rep, total_files, print_progress): if print_progress: bar = ProgressBar(total_files, width=50) counter = 0 try: while counter < total_files: # run until all images are fetched thread = queue.get(True) thread.join() if thread.has_result: rep.add_site(thread.tag, thread.id, thread.page) rep.add_image(thread.tag, thread.id, thread.image) counter += 1 if print_progress: bar.add() else: total_files -= 1 if print_progress: bar = ProgressBar(total_files, width=50) bar.add(counter) if print_progress: sys.stdout.write("%i%% %r fetched %i of %i \r" %( counter*100/total_files, bar, counter, total_files)) sys.stdout.flush() except KeyboardInterrupt: raise