48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
def format_percentage(part, total):
|
|
return int((part / total) * 100)
|
|
|
|
|
|
def format_bytes(bytes_to_format):
|
|
units = ['B', 'KB', 'MB', 'GB', 'TB']
|
|
i = 0
|
|
while bytes_to_format >= 1024 and i < len(units) - 1:
|
|
bytes_to_format /= 1024
|
|
i += 1
|
|
return f"{bytes_to_format:.2f} {units[i]}"
|
|
|
|
|
|
def format_kilobytes(bytes_to_format):
|
|
units = ['KB', 'MB', 'GB', 'TB']
|
|
i = 0
|
|
while bytes_to_format >= 1024 and i < len(units) - 1:
|
|
bytes_to_format /= 1024
|
|
i += 1
|
|
return f"{bytes_to_format:.2f} {units[i]}"
|
|
|
|
|
|
def format_time(seconds):
|
|
m, s = divmod(seconds, 60)
|
|
h, m = divmod(m, 60)
|
|
if h > 0:
|
|
return f"{int(h):02d}:{int(m):02d}:{int(s):02d}"
|
|
else:
|
|
return f"{int(m):02d}:{int(s):02d}"
|
|
|
|
|
|
def format_download_speed(speed):
|
|
if speed is None:
|
|
return 'Undefined'
|
|
|
|
units = ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s']
|
|
unit_index = 0
|
|
|
|
while speed >= 1000 and unit_index < len(units) - 1:
|
|
speed /= 1000.0
|
|
unit_index += 1
|
|
|
|
return '{:.2f}{}'.format(speed, units[unit_index])
|
|
|
|
|
|
def format_exception(ex):
|
|
return f"{type(ex).__name__}: {str(ex)}".replace('"', '\\"').replace("'", "\\'")
|