binary
provides a bug-free and easy way to convert between and within
binary (IEC) and decimal (SI) units.
binary
is distributed on PyPI as a universal
wheel and is available on Linux/macOS and Windows and supports
Python 2.7/3.5+ and PyPy.
$ pip install binary
Let's import what we need:
>>> from binary import BinaryUnits, DecimalUnits, convert_units
Basic conversion:
>>> convert_units(1536, BinaryUnits.KB, BinaryUnits.MB)
(1.5, 'MiB')
How much actual storage your new hard drive has:
>>> convert_units(4, DecimalUnits.TB, BinaryUnits.TB)
(3.637978807091713, 'TiB')
Human readable:
>>> amount, unit = convert_units(kubernetes_ingest_bytes_per_second)
>>> 'Incoming traffic: {:.2f} {}/s'.format(amount, unit)
'Incoming traffic: 24.77 GiB/s'
Just a single function!
convert_units(n, unit=BYTE, to=None, si=False, exact=False)
Converts between and within binary and decimal units. If no unit
is specified, n
is assumed to already be in bytes. If no to
is
specified, n
will be converted to the highest unit possible. If
no unit
nor to
is specified, the output will be binary units
unless si
is True
. If exact
is True
. the calculations
will use decimal.Decimal
.
- Parameters
Although the string representations for binary units end in iB
,
the attributes do not for ease of use.
Type | Short | Long |
---|---|---|
BinaryUnits | B | BYTE |
BinaryUnits | KB | KIBIBYTE |
BinaryUnits | MB | MEBIBYTE |
BinaryUnits | GB | GIBIBYTE |
BinaryUnits | TB | TEBIBYTE |
BinaryUnits | PB | PEBIBYTE |
BinaryUnits | EB | EXBIBYTE |
BinaryUnits | ZB | ZEBIBYTE |
BinaryUnits | YB | YOBIBYTE |
DecimalUnits | B | BYTE |
DecimalUnits | KB | KILOBYTE |
DecimalUnits | MB | MEGABYTE |
DecimalUnits | GB | GIGABYTE |
DecimalUnits | TB | TERABYTE |
DecimalUnits | PB | PETABYTE |
DecimalUnits | EB | EXABYTE |
DecimalUnits | ZB | ZETTABYTE |
DecimalUnits | YB | YOTTABYTE |
binary
is distributed under the terms of both
at your option.
Important changes are emphasized.
- Initial release