def main(ctx, url, name, num_threads): num_downloads = num_threads url = url file_name = name if not file_name: file_name = parse_filename(url) with OneLinePrinter("Initializing..."): manager = DownloadManager(url) manager.create_downloads(num_downloads) file_size = manager.size formatter = ProgressBarFormatter('Downloading') with OneLinePrinter(formatter): with DownloadFile(file_name, file_size) as f: for download in manager.iter_downloads(): b = formatter.create_bar(download.length) formatter.add_bar(b) download.bind(on_chunk, b, f) download.start() for download in manager.iter_downloads(): download.join()