Skip to content

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.

Table of Contents

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

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages