3 ft`@s8ddlmZddlmZd ddZd ddZdd Zd S) )unicode_literals)long c Csddddddddd g }|r d }nd }d }d }t|d}|dkrDd}x$||krh||krh|d}||}qFWt|ts~t|trd}n|dkrd}nd}|t|pd |||fS)aReturn a human-readable metric-like string representation of a number. :param number: the number to be converted to a human-readable form :param SI: If is 0, this function will use the convention that 1 kilobyte = 1024 bytes, otherwise, the convention that 1 kilobyte = 1000 bytes will be used :param space: string that will be placed between the number and the SI prefix :return: a human-readable metric-like string representation of *number* rkMGTPEZYg@@g@irNgz%i%s%sgfffff#@z%.1f%s%sz%.0f%s%s)len isinstanceintrfloat) ZnumberZSIZspaceZsymbolsstepZthreshdepthZ max_depthformatr/usr/lib/python3.6/format.py format_numbers4  rcCsx|dks|dkr|rdSdSnV|tdkr.dSt|}|d}|d}|rh|d}|d}d|||fSd ||fSdS) aReturn a human-readable string representation of a number of seconds. The string will show seconds, minutes, and optionally hours. :param seconds: the number of seconds to convert to a human-readable form :param use_hours: If use_hours is 0, the representation will be in minutes and seconds. Otherwise, it will be in hours, minutes, and seconds :return: a human-readable string representation of *seconds* Nrz--:--:--z--:--infZInfinite<z%02i:%02i:%02iz %02i:%02i)rr)ZsecondsZ use_hoursZminutesZhoursrrr format_timeIs rcCsdjdd|jDS)N css|]}d|VqdS)z Nr).0srrr hszindent_block..)join splitlines)rrrr indent_blockgsr!N)rr)r)Z __future__rZ dnf.pycomprrrr!rrrrs   5