Development Status
- 4 - Beta
Intended Audience
- Developers
Natural Language
- English
Operating System
- OS Independent
Programming Language
- Python :: 3
- Python :: 3 :: Only
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
- Python :: Implementation :: CPython
- Python :: Implementation :: PyPy
binary provides a bug-free and easy way to convert between and within binary (IEC) and decimal (SI) units.
Installation
$ pip install binary
Examples
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'
Usage
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
Types
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 |
License
binary is distributed under the terms of both
at your option.
Changelog
Important changes are emphasized.
1.0.2
Perform floor division when explicitly converting to bytes
Support negative values
1.0.1
Fix syntax warning on newer versions of Python
1.0.0
Initial release