Skip to content

question about the "download_to_file" function #2

@cantthinkofausername1234

Description

I am curious about the following code.

async def download(url, stream, update_callback=None, session=None):
close_session = False
if session is None:
close_session = True
session = get_http_session()
try:
async with session.get(url) as response:
size = int(response.headers.get('content-length', 0)) or None

        with tqdm(
            unit='B', unit_scale=True, miniters=1, desc=url.split('/')[-1], total=size,
        ) as progressbar:
            perc = 0
            async for chunk in response.content.iter_chunked(2048):
                stream.write(chunk)
                progressbar.update(len(chunk))
                if update_callback is not None and progressbar.total is not None and progressbar.total != 0:
                    last = perc
                    perc = round(progressbar.n / progressbar.total, 2)
                    if perc != last:
                        last = perc
                        await update_callback(perc)
finally:
    if close_session and session is not None:
        await session.close()

async def download_to_file(url, destination, update_callback=None, is_ext_subpath=True, session=None):
if is_ext_subpath:
destination = get_ext_dir(destination)
with open(destination, mode='wb') as f:
download(url, f, update_callback, session)

It does not seem to be used anywhere. I was wondering about it's purpose?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions