binary 1.0.2


pip install binary

  Latest version

Released: Jun 11, 2025

Project Links

Meta
Author: Ofek Lev
Requires Python: >=3.9

Classifiers

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
Latest PyPI version GitHub Actions Codecov Supported Python versions License GitHub sponsors

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

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

Wheel compatibility matrix

Platform Python 3
any

Files in release

No dependencies