Skip to content
/ binary Public

Easily convert between binary and SI units (kibibyte, kilobyte, etc.).

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

ofek/binary

Repository files navigation

binary

Latest PyPI version GitHub Actions Codecov Supported Python versions License

binary provides a bug-free and easy way to convert between and within binary (IEC) and decimal (SI) units.

Installation

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

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
    • n (int or float) - The number of units.
    • unit - The unit n represents. See types.
    • to - The unit to convert to. See types.
    • si (bool) - Assume SI units when no unit nor to is specified.
    • exact (bool) - Use decimal.Decimal for calculations.

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.1

  • Fix syntax warning on newer versions of Python

1.0.0

  • Initial release

About

Easily convert between binary and SI units (kibibyte, kilobyte, etc.).

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages