a !c@s8ddlmZddlmZd ddZd ddZdd Zd S) )unicode_literals)long c Csgd}|rd}nd}d}d}t|d}|dur6d}||krX||krX|d}||}q6t|tslt|trrd }n|d krd }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) numberZSIspaceZsymbolsstepZthreshdepthZ max_depthformatr2/usr/lib/python3.9/site-packages/dnf/cli/format.py format_numbers"   rcCsx|dus|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 rcCsddd|DS)N css|]}d|VqdS)z Nr).0srrr hzindent_block..)join splitlines)rrrr indent_blockgsr$N)rr)r)Z __future__rZ dnf.pycomprrrr$rrrrs   5