Skip to main content

Pythonic module for representing and manipulating file sizes with different prefix notations.

Project description

Only a snippet of the full README is shown on PyPi

NOTE: I strongly urge you to read this on GitHub instead. Over there the Markdown formatting is rendered much more pleasantly.

bitmath

bitmath simplifies many facets of interacting with file sizes in various units. Examples include: converting between SI and NIST prefix units (GiB to kB), converting between units of the same type (SI to SI, or NIST to NIST), basic arithmetic operations (subtracting 42KiB from 50GiB), rich comparison operations (1024 Bytes == 1KiB), bitwise operations (<<, >>, &, |, ^), and sorting.

In addition to the conversion and math operations, bitmath provides human readable representations of values which are suitable for use in interactive shells as well as larger scripts and applications.

In discussion we will refer to the NIST units primarily. I.e., instead of “megabyte” we will refer to “mibibyte”. The former is 10^3 = 1,000,000 bytes, whereas the second is 2^20 = 1,048,576 bytes. When you see file sizes in your file browser, or transfer rates in your web browser, what you’re really seeing are the base-2 sizes/rates.

  • Classes * [Class Initializer Signature](#class-initializer-signature) * [Class Methods](#class-methods)

  • Instances * [Available Classes](#available-classes) * [Instance Methods](#instance-methods) * [Instance Attributes](#instance-attributes)

  • [Usage](#usage)

  • [Basic Examples](#examples)

  • [Real Life Examples](#real-life-examples) * [Download Speeds](#example-1) * [Calculating how many files fit on a device](#example-2) * [Printing Human-Readable File Sizes in Python](#example-3) * [Calculating Linux BDP and TCP Window Scaling](#example-4)

  • [On Units](#on-units)

Basics

### Class Initializer Signature

BitMathType([value=0, [bytes=None, [bits=None]]])

A bitmath type may be initialized in four different ways:

  • Set no initial value

The default size is 0

zero_kib = KiB()

  • Set the value in current prefix units

That is to say, if you want to encapsulate 1KiB, initialize the bitmath type with 1:

one_kib = KiB(1)

one_kib = KiB(value=1)

  • Set the number of bytes

Use the bytes keyword

one_kib = KiB(bytes=1024)

  • Set the number of bits

Use the bits keyword

one_kib = KiB(bits=8192)

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

bitmath-1.0.5-1.tar.gz (19.7 kB view details)

Uploaded Source

File details

Details for the file bitmath-1.0.5-1.tar.gz.

File metadata

  • Download URL: bitmath-1.0.5-1.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for bitmath-1.0.5-1.tar.gz
Algorithm Hash digest
SHA256 8f1ac9dd35195e96f2850313e4cd95c812a61d6b26f200a33f29f2d175f5a142
MD5 1b109df7571af18bfc22a118e0884b11
BLAKE2b-256 76b19d83bc67f8c9374cda4a836026ade50ae6fbcdcc4d43a1749af9eaca05f2

See more details on using hashes here.

Supported by

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