Skip to main content

Better bit manipulation that allows indexing, and automatic bit flags.

Project description

https://img.shields.io/pypi/v/colorguard.svg

Color Guard provides simple bit manipulation and bit flags in Python. Everything is built on the int type so no number functionality is lost, while making it possible to index and slice binary numbers like strings.

https://i.imgur.com/nety2Ty.jpg

Basic usage:

>>> num = Bits(20)
>>> num
Bits(0b10100)
>>> num * 3
Bits(0b111100)
>>> num[:4]
Bits(0b1010)
>>> num.bit_length()
5
>>> num.join(0b101)
Bits(0b10100101)

Color Guard also supports conversion to and from other Python data types.

>>> Bits.from_binary("111101001101")
Bits(0b111101001101)
>>> Bits.from_hex("abc123")
Bits(0b101010111100000100100011)
>>> Bits.from_bytes(b"abc")
Bits(0b11000010110001001100011)

>>> bytes(Bits(367))
b'\x01o'
>>> int(Bits(0b1011010))
90
>>> list(Bits(367))
[1, 0, 1, 1, 0, 1, 1, 1, 1]

Features

  • Indexing and slicing of binary numbers like strings

  • Conversion between several Python data types

  • All builtin math operations including bit manipulation and comparison

  • Padded binary numbers that maintain bit length

  • Custom, easy-to-use bit flags
    • Bit field loading from bytes or stream

    • Custom data descriptors for fields

    • Field editing & conversion to bytes

For further documentation, visit http://paric.xyz/python/

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

colorguard-0.4.tar.gz (7.5 kB view details)

Uploaded Source

File details

Details for the file colorguard-0.4.tar.gz.

File metadata

  • Download URL: colorguard-0.4.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.3

File hashes

Hashes for colorguard-0.4.tar.gz
Algorithm Hash digest
SHA256 74e3137858416b82178937ed395b4f14b7675eef0df8555bc1f07c061873d39d
MD5 3845d3321dcf5b4fa0b57ca09764832f
BLAKE2b-256 955c6730b295680ad68739041c9574d9210f3f9c309532baafc83af40cc373c1

See more details on using hashes here.

Supported by

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