Skip to main content

Powerful little-endian base-128 encoding/decoding library for Python 3.

Project description

pyleb128

Powerful little-endian base-128 encoding/decoding library for Python 3.

Supports the following types:

  • Unsigned LEB128
  • Signed LEB128
  • Unsigned LEB128 +1 (ULEB128P1)

Note

The LEB classes all inherit from int and have all the operations implemented. The type of the result from any int operation will always be the type of the lhs. If the lhs is an int, then the type is an int. If the lhs is a LEB type, then the resulting type is a LEB.

Installing

python -m pip install -U pyleb128

Example Usage

from pyleb128 import uleb128, sleb128

# unsigned
print(uleb128(0xffff).size)  # 2
print((uleb128(0xffff) * 2).encoded)  # b'\xfe\xff\x07'
print(uleb128.decode(b'\xff\xff\x03'))  # 65535
print(uleb128.decode(b'\xff\xff\x03').encoded)  # b'\xff\xff\x03'
print(uleb128.decode(b'\xff\xff\x03', p1=True))  # decode with as ULEB128P1

# signed
print(sleb128.decode(b'\xf3\xff\xff\xff\x0f'))  # -13
print(uleb128.decode(b'\xf3\xff\xff\xff\x0f').encoded)  # b'\xf3\xff\xff\xff\x0f'

# can decode from a binary stream, too:
import io

stream = io.BytesIO(b'\xff\xff\x03') 
print(uleb128.decode_stream(stream, p1=True))

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

pyleb128-0.2.2.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

pyleb128-0.2.2-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

Details for the file pyleb128-0.2.2.tar.gz.

File metadata

  • Download URL: pyleb128-0.2.2.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.4 Windows/10

File hashes

Hashes for pyleb128-0.2.2.tar.gz
Algorithm Hash digest
SHA256 aad27edb1c3e2fac4373a6204d528dbbe639642b659ad9da17474fcee66b1e73
MD5 06ac8e85d73ddd7fc1e9a4176a24853d
BLAKE2b-256 08c92437e16e7c4fb0d136d922c064954d47389072a211153c226d094deb23ed

See more details on using hashes here.

File details

Details for the file pyleb128-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: pyleb128-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 18.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.4 Windows/10

File hashes

Hashes for pyleb128-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dbd83f6b31b04d287f3065fd33c67e09babb6c41d28f8b7118f101944cd95426
MD5 109126bf1d845eb160b7cb03076ec583
BLAKE2b-256 ebdea7eafe5a5e94bba95c5ee023ef2a60dd73533fb4cef06b8d8c17140e7792

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