a
    !c                     @   s8   d dl mZ d dlmZ dddZdddZdd	 Zd
S )    )unicode_literals)long c           	      C   s   g d}|rd}nd}d}d}t |d }| du r6d} | |krX||k rX|d }| | } q6t| tslt| trrd	}n| d
k rd}nd}|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   kMGTPEZYg     @@g      @i  r      Ng        z%i%s%sgfffff#@z%.1f%s%sz%.0f%s%s)len
isinstanceintr   float)	ZnumberZSIspaceZsymbolsstepZthreshdepthZ	max_depthformat r   2/usr/lib/python3.9/site-packages/dnf/cli/format.pyformat_number   s"    


r   c                 C   sx   | du s| dk r|rdS dS nV| t dkr.dS t| } | d }| d } |rh|d }|d }d||| f S d	|| f S dS )
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--:--infZInfinite<   z%02i:%02i:%02iz	%02i:%02i)r   r   )ZsecondsZ	use_hoursZminutesZhoursr   r   r   format_timeI   s    r   c                 C   s   d dd |  D S )N
c                 s   s   | ]}d | V  qdS )z  Nr   ).0sr   r   r   	<genexpr>h       zindent_block.<locals>.<genexpr>)join
splitlines)r   r   r   r   indent_blockg   s    r#   N)r   r   )r   )Z
__future__r   Z
dnf.pycompr   r   r   r#   r   r   r   r   <module>   s   
5
