binary
provides a bug-free and easy way to convert between and within binary (IEC) and decimal (SI) units.
Table of Contents
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
.
https://en.wikipedia.org/wiki/Binary_prefix
https://en.wikipedia.org/wiki/IEC_80000-13
https://www.iso.org/standard/31898.html (paywalled)
Decimal units conform to SI standards, see:
https://en.wikipedia.org/wiki/International_System_of_Units
- 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