better progress bar

This commit is contained in:
odrling 2022-10-06 08:30:21 +02:00
parent 4e997a8aa7
commit e6987dea19
No known key found for this signature in database
GPG key ID: A0145F975F9F8B75
2 changed files with 27 additions and 5 deletions

View file

@ -4,6 +4,15 @@ from dataclasses import dataclass
from pathlib import Path
from pprint import pprint
from rich.progress import (
BarColumn,
DownloadColumn,
Progress,
TextColumn,
TimeRemainingColumn,
TransferSpeedColumn,
)
import pyperclip
import requests
import typer
@ -44,14 +53,27 @@ def output(copy: bool, resp: dict):
@dataclass
class ProgressMonitor:
size: int
filename: str
def __post_init__(self):
self.progress = Progress(transient=True)
self.task = self.progress.add_task("[green]Uploading")
self.progress = Progress(
TextColumn("[bold blue]{task.fields[filename]}", justify="right"),
BarColumn(bar_width=None),
"[progress.percentage]{task.percentage:>3.1f}%",
"",
DownloadColumn(),
"",
TransferSpeedColumn(),
"",
TimeRemainingColumn(),
)
self.task = self.progress.add_task("[green]Uploading",
filename=self.filename,
total=self.size)
self.progress.start()
def __call__(self, monitor: MultipartEncoderMonitor):
progress = (100 * monitor.bytes_read) // self.size
progress = monitor.bytes_read
self.progress.update(self.task, completed=progress)
@ -88,7 +110,7 @@ def upload(file: Path,
files = MultipartEncoder(
fields={'file': (filename, f)}
)
progress_monitor = ProgressMonitor(files.len)
progress_monitor = ProgressMonitor(files.len, filename)
monitored = MultipartEncoderMonitor(files, progress_monitor)
headers = {'Content-Type': monitored.content_type}

View file

@ -10,7 +10,7 @@ with req.open() as f:
setup(
name='hikari',
version='1.2',
version='1.3',
packages=find_packages(),
include_package_data=True,
install_requires=install_requires,