def download_assets()

in assets/__init__.py [0:0]


def download_assets(entries):
    """
    Download the assets of a package.

    :param entries: assets entries as generated by :py:func:`.get_assets`
    :return: generator yielding (path, content) pairs as they get ready
    """

    from requests_futures.sessions import FuturesSession
    from concurrent.futures import as_completed

    session = FuturesSession()
    futures = []

    for entry in entries:
        future = session.get(entry.download_url)
        future.entry = entry
        futures.append(future)

    for future in as_completed(futures):
        res = future.result()
        res.raise_for_status()
        yield future.entry.path, res.content

    session.close()