Progress examples (#1272)

* Progress examples

* Update advanced.md

Co-authored-by: Florimond Manca <florimond.manca@gmail.com>
This commit is contained in:
Tom Christie 2020-09-10 12:28:08 +01:00 committed by GitHub
parent 930f3773e2
commit 59074c7bc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 1 deletions

View File

@ -246,9 +246,36 @@ with tempfile.NamedTemporaryFile() as download_file:
download_file.write(chunk)
progress.update(response.num_bytes_downloaded - num_bytes_downloaded)
num_bytes_downloaded = response.num_bytes_downloaded
print(f"The total download size is {response.num_bytes_downloaded} bytes")
```
![tqdm progress bar](img/tqdm-progress.gif)
Or an alternate example, this time using the [`rich`](https://github.com/willmcgugan/rich) library…
```python
import tempfile
import httpx
import rich.progress
with tempfile.NamedTemporaryFile() as download_file:
url = "https://speed.hetzner.de/100MB.bin"
with httpx.stream("GET", url) as response:
total = int(response.headers["Content-Length"])
with rich.progress.Progress(
"[progress.percentage]{task.percentage:>3.0f}%",
rich.progress.BarColumn(bar_width=None),
rich.progress.DownloadColumn(),
rich.progress.TransferSpeedColumn(),
) as progress:
download_task = progress.add_task("Download", total=total)
for chunk in response.iter_bytes():
download_file.write(chunk)
progress.update(download_task, completed=response.num_bytes_downloaded)
```
![rich progress bar](img/rich-progress.gif)
## .netrc Support
HTTPX supports .netrc file. In `trust_env=True` cases, if auth parameter is

BIN
docs/img/rich-progress.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
docs/img/tqdm-progress.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB