def process_list(urlist, wanted, output): processed = [] formatted = (out.rtf_format if output == "rtf" else out.json_format if output == "json" else out.std_format) spinner = Spinner("Checking URLs ") with concurrent.futures.ThreadPoolExecutor() as executor: results = [executor.submit(get_status, url) for url in urlist] for connection in concurrent.futures.as_completed(results): status = connection.result() if status["desc"] in wanted: processed.append(formatted(status)) spinner.next() spinner.writeln("\033[F") # move cursor to the beginning of previous line spinner.finish() return processed