a !c @ s8 d dl mZ d dlmZ dddZdddZdd Zd S ) )unicode_literals)long c C s g d}|rd}nd}d}d}t |d }| du r6d} | |krX||k rX|d }| | } q6t| tslt| trrd }n| d k rd}nd}|t| pd||| f S ) a Return 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* ) r kMGTPEZYg @@g @i r Ng z%i%s%sgfffff#@z%.1f%s%sz%.0f%s%s)len isinstanceintr float) numberZSIspaceZsymbolsstepZthreshdepthZ max_depthformat r 2/usr/lib/python3.9/site-packages/dnf/cli/format.py format_number s" r c C sx | du s| dk r|rdS dS nV| t dkr.dS t| } | d }| d } |rh|d }|d }d||| f S d || f S dS ) a Return 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* Nr z--:--:--z--:--infZInfinite<