moniteur/utils.py

41 lines
1.3 KiB
Python

#!/usr/bin/python3
# -*- coding: utf-8 -*-
def groupbythree (integer, sep = ' '):
'''
Group integer by three figures
Optionnal sep parameter is to define the char to put between groups and is space by default
'''
from re import sub
return (sub (',', sep, '{:,}'.format (integer)))
def seconds_to_time (time):
'''
Converts a number of second time to formated time
'''
def leading_zero (value):
return "%02d" % (value,)
days = int (time/86400)
hours = int ((time/3600) - (24*days))
minutes = int ((time/60) - (1440*days) - (60*hours))
seconds = int (time - (86400*days) - (3600*hours) - (60*minutes))
if days == 0:
if hours == 0:
if minutes == 0:
return (str (leading_zero (seconds)) + 's')
else:
return (str (leading_zero (minutes)) + 'm ' + str (leading_zero (seconds)) + 's')
else:
return (str (leading_zero (hours)) + 'h ' + str (leading_zero (minutes)) + 'm ' + str (leading_zero (seconds)) + 's')
else:
return (str (days) + "j " + str (leading_zero (hours)) + 'h ' + str (leading_zero (minutes)) + 'm ' + str (leading_zero (seconds)) + 's')
def sleep_to_next_second ():
from time import sleep, time
sleep (1-(time ()-int (time())))
def bytes_human (num):
for x in ['B','KiB','MiB','GiB','TiB']:
if num < 1024.0:
return "%3.1f %s" % (num, x)
num /= 1024.0