ofek / binary

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

  • Initial release

About

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

License:Apache License 2.0


Languages

Language:Python 100.0%