code: def _download_url(self, url, dest_path, *, extra_args=None):
      cmd = [
          "curl",
          "--fail",
          "--location",
          "--retry",
          "5",
          *(extra_args or []),
          "--output",
          dest_path,
          url,
      ]
      proc = subprocess.Popen(
          cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE
      )
      stdout, stderr = proc.communicate()
      if proc.returncode != 0:
          try:
              # Don't leave possibly partial file around
              os.remove(dest_path)
          except IOError:
              pass
          raise Exception(
              f"Downloading {url} failed\n"
              f"stdout: {stdout}\nstderr: {stderr}"
          )
  
imports: import argparse
  import concurrent.futures
  import functools
  import json
  import os
  import random
  import re
  import subprocess
  import time
  import urllib.request
label_desc: Use image node_id 4 for calling the Downloader obj's underlying member method code with example usage: obj._download_url(url, dest_path) without return types