U
ʗRe @ s d Z dgZddlmZmZmZmZ dddeee eee ee eddd Z eee eeeef d
ddZ
dddeee ee ed
ddZdS )a Functions for reporting filesizes. Borrowed from https://github.com/PyFilesystem/pyfilesystem2
The functions declared in this module should cover the different
usecases needed to generate a string representation of a file size
using several different units. Since there are many standards regarding
file size units, three different functions have been implemented.
See Also:
* `Wikipedia: Binary prefix `_
decimal )IterableListOptionalTuple precision separator)sizesuffixesbaser
r returnc C s` | dkrdS | |k rd | S t|dD ]\}}|| }| |k r( qFq(dj || | |||dS )Nr z1 bytez
{:,} bytes z{:,.{precision}f}{separator}{}r )format enumerate)r r
r r
r isuffixunit r /builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/rich/filesize.py_to_str s
r )r r
r r c C s2 t |D ] \}}|| }| || k r q*q||fS )z*Pick a suffix and base for the given size.)r )r r
r r r r r r r pick_unit_and_suffix, s
r )r r
r r c C s t | dd||dS )a3 Convert a filesize in to a string (powers of 1000, SI prefixes).
In this convention, ``1000 B = 1 kB``.
This is typically the format used to advertise the storage
capacity of USB flash drives and the like (*256 MB* meaning
actually a storage capacity of more than *256 000 000 B*),
or used by **Mac OS X** since v10.6 to report file sizes.
Arguments:
int (size): A file size.
int (precision): The number of decimal places to include (default = 1).
str (separator): The string to separate the value from the units (default = " ").
Returns:
`str`: A string containing a abbreviated file size and units.
Example:
>>> filesize.decimal(30000)
'30.0 kB'
>>> filesize.decimal(30000, precision=2, separator="")
'30.00kB'
)kBMBGBTBPBEBZBYBi r )r )r r
r r r r r 5 s N)__doc____all__typingr r r r intstrr r r r r r r s*