Skip to main content

No project description provided

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

binary-1.0.2.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

binary-1.0.2-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file binary-1.0.2.tar.gz.

File metadata

  • Download URL: binary-1.0.2.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for binary-1.0.2.tar.gz
Algorithm Hash digest
SHA256 a6ba0af9579098b18dd2ec0b08bd409d8a5c4e5e5a301104b053ad40137264a8
MD5 94e657740b5cf5e5fcdaf973e1d1c330
BLAKE2b-256 bed66ec8a59124533f66e8873eaf6cb2ecbc75c37629aa33c80d2d6338a9eddf

See more details on using hashes here.

Provenance

The following attestation bundles were made for binary-1.0.2.tar.gz:

Publisher: build.yml on ofek/binary

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file binary-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: binary-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for binary-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e79bba085cddfb9d3beefe138464506d2ef0c0f5f68c69e27fc9f82d4ac85470
MD5 a504dd2f8b2a68412f6ca68f0437b72d
BLAKE2b-256 3dc4482b01ffc8a7b7a1a99497fa46d3fca315219b8ddd8f5e595044b7e0ff18

See more details on using hashes here.

Provenance

The following attestation bundles were made for binary-1.0.2-py3-none-any.whl:

Publisher: build.yml on ofek/binary

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page